@budibase/server 1.0.27-alpha.1 → 1.0.27-alpha.13
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.
- package/__mocks__/node-fetch.ts +18 -0
- package/builder/assets/{index.4a13c4cb.css → index.176f00e0.css} +1 -1
- package/builder/assets/index.5776ef20.js +1348 -0
- package/builder/index.html +2 -2
- package/coverage/clover.xml +1193 -1027
- package/coverage/coverage-final.json +72 -72
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
- package/coverage/lcov-report/api/controllers/application.js.html +73 -64
- package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +150 -48
- package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
- package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
- package/coverage/lcov-report/api/controllers/index.html +20 -20
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query/index.html +21 -21
- package/coverage/lcov-report/api/controllers/query/index.js.html +101 -122
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -3
- package/coverage/lcov-report/api/controllers/role.js.html +2 -2
- package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +22 -22
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -5
- package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +14 -5
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +2 -2
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +6 -6
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/routes/application.js.html +2 -2
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +2 -2
- package/coverage/lcov-report/api/routes/backup.js.html +2 -2
- package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
- package/coverage/lcov-report/api/routes/component.js.html +2 -2
- package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
- package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
- package/coverage/lcov-report/api/routes/dev.js.html +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +2 -2
- package/coverage/lcov-report/api/routes/layout.js.html +2 -2
- package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
- package/coverage/lcov-report/api/routes/permission.js.html +12 -3
- package/coverage/lcov-report/api/routes/query.js.html +25 -4
- package/coverage/lcov-report/api/routes/role.js.html +2 -2
- package/coverage/lcov-report/api/routes/routing.js.html +2 -2
- package/coverage/lcov-report/api/routes/row.js.html +2 -2
- package/coverage/lcov-report/api/routes/screen.js.html +2 -2
- package/coverage/lcov-report/api/routes/script.js.html +2 -2
- package/coverage/lcov-report/api/routes/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +2 -2
- package/coverage/lcov-report/api/routes/templates.js.html +2 -2
- package/coverage/lcov-report/api/routes/user.js.html +2 -2
- package/coverage/lcov-report/api/routes/view.js.html +2 -2
- package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +2 -2
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +32 -8
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +11 -11
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +6 -6
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +4 -4
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +2 -2
- package/coverage/lcov-report/db/client.js.html +2 -2
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +2 -2
- package/coverage/lcov-report/db/utils.js.html +19 -19
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +64 -64
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +12 -12
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +9 -9
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +3 -3
- package/coverage/lcov-report/threads/index.html +31 -31
- package/coverage/lcov-report/threads/index.js.html +12 -12
- package/coverage/lcov-report/threads/query.js.html +369 -93
- package/coverage/lcov-report/threads/utils.js.html +359 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +28 -19
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +11 -11
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +247 -10
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +13 -4
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
- package/coverage/lcov.info +2027 -1725
- package/dist/api/controllers/apikeys.js +2 -2
- package/dist/api/controllers/application.js +4 -4
- package/dist/api/controllers/auth.js +1 -1
- package/dist/api/controllers/cloud.js +2 -2
- package/dist/api/controllers/datasource.js +29 -0
- package/dist/api/controllers/deploy/index.js +2 -2
- package/dist/api/controllers/dev.js +2 -2
- package/dist/api/controllers/hosting.js +2 -2
- package/dist/api/controllers/permission.js +2 -2
- package/dist/api/controllers/query/import/sources/base/index.js +2 -1
- package/dist/api/controllers/query/import/sources/curl.js +11 -5
- package/dist/api/controllers/query/import/sources/openapi2.js +8 -5
- package/dist/api/controllers/query/index.js +45 -47
- package/dist/api/controllers/query/validation.js +2 -1
- package/dist/api/controllers/role.js +1 -1
- package/dist/api/controllers/routing.js +1 -1
- package/dist/api/controllers/row/internal.js +14 -6
- package/dist/api/controllers/row/internalSearch.js +3 -2
- package/dist/api/controllers/row/utils.js +13 -6
- package/dist/api/controllers/screen.js +1 -1
- package/dist/api/controllers/user.js +3 -3
- package/dist/api/controllers/webhook.js +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/routes/apikeys.js +1 -1
- package/dist/api/routes/application.js +1 -1
- package/dist/api/routes/automation.js +1 -1
- package/dist/api/routes/backup.js +1 -1
- package/dist/api/routes/cloud.js +1 -1
- package/dist/api/routes/component.js +1 -1
- package/dist/api/routes/datasource.js +1 -1
- package/dist/api/routes/deploy.js +1 -1
- package/dist/api/routes/dev.js +1 -1
- package/dist/api/routes/hosting.js +1 -1
- package/dist/api/routes/integration.js +1 -1
- package/dist/api/routes/layout.js +1 -1
- package/dist/api/routes/metadata.js +1 -1
- package/dist/api/routes/permission.js +1 -1
- package/dist/api/routes/query.js +4 -2
- package/dist/api/routes/role.js +1 -1
- package/dist/api/routes/routing.js +1 -1
- package/dist/api/routes/row.js +1 -1
- package/dist/api/routes/screen.js +1 -1
- package/dist/api/routes/script.js +1 -1
- package/dist/api/routes/static.js +1 -1
- package/dist/api/routes/table.js +1 -1
- package/dist/api/routes/templates.js +1 -1
- package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/dist/api/routes/user.js +1 -1
- package/dist/api/routes/view.js +1 -1
- package/dist/api/routes/webhook.js +1 -1
- package/dist/app.js +1 -1
- package/dist/automations/bullboard.js +1 -1
- package/dist/automations/steps/executeQuery.js +9 -2
- package/dist/automations/utils.js +1 -1
- package/dist/constants/index.js +3 -3
- package/dist/constants/screens.js +1 -1
- package/dist/db/client.js +1 -1
- package/dist/db/utils.js +1 -1
- package/dist/integrations/base/sqlTable.js +1 -1
- package/dist/integrations/rest.js +3 -3
- package/dist/middleware/authorized.js +2 -2
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +6 -6
- package/dist/middleware/usageQuota.js +1 -1
- package/dist/package.json +5 -4
- package/dist/tests/utilities/TestConfiguration.js +55 -8
- package/dist/tests/utilities/structures.js +2 -2
- package/dist/threads/automation.js +2 -2
- package/dist/threads/query.js +148 -52
- package/dist/threads/utils.js +106 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +1 -1
- package/dist/utilities/fileSystem/utilities.js +2 -1
- package/dist/utilities/global.js +5 -5
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/redis.js +1 -1
- package/dist/utilities/rowProcessor/index.js +76 -0
- package/dist/utilities/security.js +2 -2
- package/dist/utilities/usageQuota.js +2 -2
- package/dist/utilities/workerRequests.js +3 -3
- package/package.json +6 -5
- package/scripts/replicateApp.js +1 -1
- package/src/api/controllers/apikeys.js +2 -2
- package/src/api/controllers/application.js +7 -4
- package/src/api/controllers/auth.js +1 -1
- package/src/api/controllers/cloud.js +5 -2
- package/src/api/controllers/datasource.js +34 -0
- package/src/api/controllers/deploy/index.js +2 -2
- package/src/api/controllers/dev.js +2 -2
- package/src/api/controllers/hosting.js +2 -2
- package/src/api/controllers/permission.js +2 -2
- package/src/api/controllers/query/import/sources/base/index.ts +3 -1
- package/src/api/controllers/query/import/sources/curl.ts +12 -4
- package/src/api/controllers/query/import/sources/openapi2.ts +9 -5
- package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +2 -3
- package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +6 -7
- package/src/api/controllers/query/import/tests/index.spec.js +0 -6
- package/src/api/controllers/query/index.js +48 -55
- package/src/api/controllers/query/validation.js +2 -1
- package/src/api/controllers/role.js +1 -1
- package/src/api/controllers/routing.js +1 -1
- package/src/api/controllers/row/internal.js +14 -5
- package/src/api/controllers/row/internalSearch.js +3 -2
- package/src/api/controllers/row/utils.js +11 -8
- package/src/api/controllers/screen.js +1 -1
- package/src/api/controllers/user.js +6 -3
- package/src/api/controllers/webhook.js +1 -1
- package/src/api/index.js +1 -1
- package/src/api/routes/apikeys.js +1 -1
- package/src/api/routes/application.js +1 -1
- package/src/api/routes/automation.js +1 -1
- package/src/api/routes/backup.js +1 -1
- package/src/api/routes/cloud.js +1 -1
- package/src/api/routes/component.js +1 -1
- package/src/api/routes/datasource.js +1 -1
- package/src/api/routes/deploy.js +1 -1
- package/src/api/routes/dev.js +1 -1
- package/src/api/routes/hosting.js +1 -1
- package/src/api/routes/integration.js +1 -1
- package/src/api/routes/layout.js +1 -1
- package/src/api/routes/metadata.js +1 -1
- package/src/api/routes/permission.js +4 -1
- package/src/api/routes/query.js +9 -2
- package/src/api/routes/role.js +1 -1
- package/src/api/routes/routing.js +1 -1
- package/src/api/routes/row.js +1 -1
- package/src/api/routes/screen.js +1 -1
- package/src/api/routes/script.js +1 -1
- package/src/api/routes/static.js +1 -1
- package/src/api/routes/table.js +1 -1
- package/src/api/routes/templates.js +1 -1
- package/src/api/routes/tests/datasource.spec.js +45 -0
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/query.spec.js +70 -1
- package/src/api/routes/tests/role.spec.js +2 -2
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +1 -1
- package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/src/api/routes/user.js +1 -1
- package/src/api/routes/view.js +1 -1
- package/src/api/routes/webhook.js +1 -1
- package/src/app.ts +1 -1
- package/src/automations/bullboard.js +1 -1
- package/src/automations/steps/executeQuery.js +10 -2
- package/src/automations/utils.js +1 -1
- package/src/constants/index.js +3 -3
- package/src/constants/screens.js +1 -1
- package/src/db/client.js +1 -1
- package/src/db/utils.js +1 -1
- package/src/definitions/datasource.ts +10 -0
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/rest.ts +6 -3
- package/src/middleware/authorized.js +2 -2
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +11 -7
- package/src/middleware/tests/authorized.spec.js +2 -2
- package/src/middleware/tests/currentapp.spec.js +35 -41
- package/src/middleware/tests/usageQuota.spec.js +1 -1
- package/src/middleware/usageQuota.js +1 -1
- package/src/tests/utilities/TestConfiguration.js +65 -8
- package/src/tests/utilities/structures.js +2 -2
- package/src/threads/automation.js +2 -2
- package/src/threads/query.js +148 -56
- package/src/threads/utils.js +116 -1
- package/src/utilities/budibaseDir.js +1 -1
- package/src/utilities/fileSystem/utilities.js +3 -1
- package/src/utilities/global.js +8 -5
- package/src/utilities/index.js +1 -1
- package/src/utilities/redis.js +1 -1
- package/src/utilities/rowProcessor/index.js +79 -0
- package/src/utilities/security.js +5 -2
- package/src/utilities/usageQuota.js +2 -2
- package/src/utilities/workerRequests.js +3 -3
- package/builder/assets/index.00c4135e.js +0 -1320
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">92.39% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>85/92</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.08% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>30/37</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">91.66% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>11/12</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">93.18% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>82/88</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -138,161 +138,437 @@
|
|
|
138
138
|
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
139
|
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
140
|
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
-
<a name='L82'></a><a href='#L82'>82</a
|
|
142
|
-
<
|
|
143
|
-
<
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
167
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
181
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
182
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
183
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
184
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
185
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
186
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
187
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
188
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
189
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
190
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
191
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
192
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
193
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
194
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
195
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
196
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
197
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
198
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
199
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
202
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
203
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
204
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
227
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
228
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
229
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
230
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
231
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
232
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
233
|
+
<a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
234
|
+
<span class="cline-any cline-yes">2x</span>
|
|
235
|
+
<span class="cline-any cline-yes">2x</span>
|
|
236
|
+
<span class="cline-any cline-yes">2x</span>
|
|
237
|
+
<span class="cline-any cline-yes">2x</span>
|
|
238
|
+
<span class="cline-any cline-yes">2x</span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-yes">15x</span>
|
|
243
|
+
<span class="cline-any cline-yes">15x</span>
|
|
244
|
+
<span class="cline-any cline-yes">15x</span>
|
|
245
|
+
<span class="cline-any cline-yes">15x</span>
|
|
246
|
+
<span class="cline-any cline-yes">15x</span>
|
|
247
|
+
<span class="cline-any cline-yes">15x</span>
|
|
248
|
+
<span class="cline-any cline-yes">15x</span>
|
|
249
|
+
<span class="cline-any cline-yes">15x</span>
|
|
250
|
+
<span class="cline-any cline-yes">15x</span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
|
+
<span class="cline-any cline-yes">15x</span>
|
|
255
|
+
<span class="cline-any cline-yes">15x</span>
|
|
144
256
|
<span class="cline-any cline-neutral"> </span>
|
|
145
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-yes">16x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-yes">16x</span>
|
|
262
|
+
<span class="cline-any cline-yes">16x</span>
|
|
263
|
+
<span class="cline-any cline-yes">16x</span>
|
|
264
|
+
<span class="cline-any cline-yes">16x</span>
|
|
146
265
|
<span class="cline-any cline-yes">2x</span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-yes">14x</span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-yes">14x</span>
|
|
270
|
+
<span class="cline-any cline-yes">14x</span>
|
|
271
|
+
<span class="cline-any cline-yes">14x</span>
|
|
272
|
+
<span class="cline-any cline-yes">14x</span>
|
|
273
|
+
<span class="cline-any cline-yes">14x</span>
|
|
274
|
+
<span class="cline-any cline-yes">12x</span>
|
|
275
|
+
<span class="cline-any cline-yes">12x</span>
|
|
276
|
+
<span class="cline-any cline-yes">12x</span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-yes">14x</span>
|
|
147
281
|
<span class="cline-any cline-no"> </span>
|
|
148
|
-
<span class="cline-any cline-
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
284
|
<span class="cline-any cline-neutral"> </span>
|
|
150
285
|
<span class="cline-any cline-no"> </span>
|
|
151
286
|
<span class="cline-any cline-neutral"> </span>
|
|
152
287
|
<span class="cline-any cline-neutral"> </span>
|
|
153
|
-
<span class="cline-any cline-yes">2x</span>
|
|
154
288
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-yes">14x</span>
|
|
155
290
|
<span class="cline-any cline-neutral"> </span>
|
|
156
291
|
<span class="cline-any cline-neutral"> </span>
|
|
157
|
-
<span class="cline-any cline-yes">2x</span>
|
|
158
292
|
<span class="cline-any cline-neutral"> </span>
|
|
159
293
|
<span class="cline-any cline-neutral"> </span>
|
|
160
294
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-yes">1x</span>
|
|
161
296
|
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-yes">1x</span>
|
|
298
|
+
<span class="cline-any cline-yes">1x</span>
|
|
162
299
|
<span class="cline-any cline-neutral"> </span>
|
|
163
300
|
<span class="cline-any cline-neutral"> </span>
|
|
164
301
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-yes">13x</span>
|
|
303
|
+
<span class="cline-any cline-yes">11x</span>
|
|
165
304
|
<span class="cline-any cline-neutral"> </span>
|
|
166
|
-
<span class="cline-any cline-yes">4x</span>
|
|
167
|
-
<span class="cline-any cline-yes">4x</span>
|
|
168
|
-
<span class="cline-any cline-yes">2x</span>
|
|
169
305
|
<span class="cline-any cline-neutral"> </span>
|
|
170
|
-
<span class="cline-any cline-yes">2x</span>
|
|
171
306
|
<span class="cline-any cline-neutral"> </span>
|
|
172
|
-
<span class="cline-any cline-yes">
|
|
173
|
-
<span class="cline-any cline-yes">2x</span>
|
|
174
|
-
<span class="cline-any cline-yes">2x</span>
|
|
175
|
-
<span class="cline-any cline-yes">2x</span>
|
|
176
|
-
<span class="cline-any cline-yes">2x</span>
|
|
177
|
-
<span class="cline-any cline-no"> </span>
|
|
178
|
-
<span class="cline-any cline-no"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">13x</span>
|
|
179
308
|
<span class="cline-any cline-no"> </span>
|
|
180
309
|
<span class="cline-any cline-neutral"> </span>
|
|
181
310
|
<span class="cline-any cline-neutral"> </span>
|
|
182
311
|
<span class="cline-any cline-neutral"> </span>
|
|
183
|
-
<span class="cline-any cline-yes">
|
|
184
|
-
<span class="cline-any cline-
|
|
312
|
+
<span class="cline-any cline-yes">13x</span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-yes">13x</span>
|
|
185
315
|
<span class="cline-any cline-no"> </span>
|
|
186
316
|
<span class="cline-any cline-neutral"> </span>
|
|
187
317
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-yes">13x</span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-yes">5x</span>
|
|
323
|
+
<span class="cline-any cline-yes">5x</span>
|
|
324
|
+
<span class="cline-any cline-yes">5x</span>
|
|
325
|
+
<span class="cline-any cline-yes">5x</span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
327
|
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">2x</span>
|
|
190
|
-
<span class="cline-any cline-no"> </span>
|
|
191
328
|
<span class="cline-any cline-neutral"> </span>
|
|
192
329
|
<span class="cline-any cline-neutral"> </span>
|
|
193
330
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-yes">2x</span>
|
|
195
|
-
<span class="cline-any cline-no"> </span>
|
|
196
331
|
<span class="cline-any cline-neutral"> </span>
|
|
197
332
|
<span class="cline-any cline-neutral"> </span>
|
|
198
333
|
<span class="cline-any cline-neutral"> </span>
|
|
199
|
-
<span class="cline-any cline-yes">2x</span>
|
|
200
334
|
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-yes">6x</span>
|
|
340
|
+
<span class="cline-any cline-yes">6x</span>
|
|
341
|
+
<span class="cline-any cline-yes">6x</span>
|
|
342
|
+
<span class="cline-any cline-yes">6x</span>
|
|
343
|
+
<span class="cline-any cline-yes">6x</span>
|
|
344
|
+
<span class="cline-any cline-yes">5x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">5x</span>
|
|
349
|
+
<span class="cline-any cline-yes">5x</span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-yes">1x</span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-yes">6x</span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-yes">16x</span>
|
|
358
|
+
<span class="cline-any cline-yes">16x</span>
|
|
359
|
+
<span class="cline-any cline-no"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-yes">16x</span>
|
|
362
|
+
<span class="cline-any cline-yes">16x</span>
|
|
363
|
+
<span class="cline-any cline-yes">16x</span>
|
|
364
|
+
<span class="cline-any cline-yes">2x</span>
|
|
201
365
|
<span class="cline-any cline-yes">2x</span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-yes">16x</span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">11x</span>
|
|
371
|
+
<span class="cline-any cline-yes">11x</span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-yes">6x</span>
|
|
202
374
|
<span class="cline-any cline-no"> </span>
|
|
203
375
|
<span class="cline-any cline-neutral"> </span>
|
|
204
376
|
<span class="cline-any cline-neutral"> </span>
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
377
|
+
<span class="cline-any cline-yes">6x</span>
|
|
378
|
+
<span class="cline-any cline-yes">6x</span>
|
|
206
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-yes">11x</span>
|
|
381
|
+
<span class="cline-any cline-yes">11x</span>
|
|
382
|
+
<span class="cline-any cline-yes">11x</span>
|
|
383
|
+
<span class="cline-any cline-yes">6x</span>
|
|
384
|
+
<span class="cline-any cline-yes">6x</span>
|
|
207
385
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">1x</span>
|
|
209
|
-
<span class="cline-any cline-yes">4x</span>
|
|
210
386
|
<span class="cline-any cline-neutral"> </span>
|
|
211
387
|
<span class="cline-any cline-neutral"> </span>
|
|
212
388
|
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-yes">6x</span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-yes">16x</span>
|
|
213
393
|
<span class="cline-any cline-neutral"> </span>
|
|
214
394
|
<span class="cline-any cline-neutral"> </span>
|
|
215
395
|
<span class="cline-any cline-neutral"> </span>
|
|
216
396
|
<span class="cline-any cline-yes">2x</span>
|
|
397
|
+
<span class="cline-any cline-yes">10x</span>
|
|
398
|
+
<span class="cline-any cline-yes">10x</span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-yes">8x</span>
|
|
217
401
|
<span class="cline-any cline-neutral"> </span>
|
|
218
402
|
<span class="cline-any cline-neutral"> </span>
|
|
219
403
|
<span class="cline-any cline-yes">2x</span>
|
|
220
404
|
<span class="cline-any cline-neutral"> </span>
|
|
221
405
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">require("./utils")
|
|
406
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const threadUtils = require("./utils")
|
|
407
|
+
threadUtils.threadSetup()
|
|
223
408
|
const ScriptRunner = require("../utilities/scriptRunner")
|
|
224
409
|
const { integrations } = require("../integrations")
|
|
410
|
+
const { processStringSync } = require("@budibase/string-templates")
|
|
411
|
+
const CouchDB = require("../db")
|
|
225
412
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
413
|
+
class QueryRunner {
|
|
414
|
+
constructor(input, flags = { noRecursiveQuery: false }) {
|
|
415
|
+
this.appId = input.appId
|
|
416
|
+
this.datasource = input.datasource
|
|
417
|
+
this.queryVerb = input.queryVerb
|
|
418
|
+
this.fields = input.fields
|
|
419
|
+
this.parameters = input.parameters
|
|
420
|
+
this.transformer = input.transformer
|
|
421
|
+
this.queryId = input.queryId
|
|
422
|
+
this.noRecursiveQuery = flags.noRecursiveQuery
|
|
423
|
+
this.cachedVariables = []
|
|
424
|
+
// allows the response from a query to be stored throughout this
|
|
425
|
+
// execution so that if it needs to be re-used for another variable
|
|
426
|
+
// it can be
|
|
427
|
+
this.queryResponse = {}
|
|
428
|
+
this.hasRerun = false
|
|
233
429
|
}
|
|
234
|
-
return resp
|
|
235
|
-
}
|
|
236
430
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
431
|
+
async execute() {
|
|
432
|
+
let { datasource, fields, queryVerb, transformer } = this
|
|
433
|
+
// pre-query, make sure datasource variables are added to parameters
|
|
434
|
+
const parameters = await this.addDatasourceVariables()
|
|
435
|
+
const query = threadUtils.enrichQueryFields(fields, parameters)
|
|
436
|
+
const Integration = integrations[datasource.source]
|
|
437
|
+
if (!Integration) {
|
|
438
|
+
throw "Integration type does not exist."
|
|
439
|
+
}
|
|
440
|
+
const integration = new Integration(datasource.config)
|
|
245
441
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
442
|
+
let output = threadUtils.formatResponse(await integration[queryVerb](query))
|
|
443
|
+
let rows = output,
|
|
444
|
+
info = undefined,
|
|
445
|
+
extra = undefined
|
|
446
|
+
if (threadUtils.hasExtraData(output)) {
|
|
447
|
+
rows = output.data
|
|
448
|
+
info = output.info
|
|
449
|
+
extra = output.extra
|
|
450
|
+
}
|
|
252
451
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
<span class="cstat-no" title="statement not covered" >
|
|
260
|
-
|
|
261
|
-
}
|
|
452
|
+
// transform as required
|
|
453
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (transformer) {
|
|
454
|
+
const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(transformer, {</span>
|
|
455
|
+
data: rows,
|
|
456
|
+
params: parameters,
|
|
457
|
+
})
|
|
458
|
+
<span class="cstat-no" title="statement not covered" > rows = runner.execute()</span>
|
|
459
|
+
}
|
|
262
460
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
461
|
+
// if the request fails we retry once, invalidating the cached value
|
|
462
|
+
if (
|
|
463
|
+
info &&
|
|
464
|
+
info.code >= 400 &&
|
|
465
|
+
this.cachedVariables.length > 0 &&
|
|
466
|
+
!this.hasRerun
|
|
467
|
+
) {
|
|
468
|
+
this.hasRerun = true
|
|
469
|
+
// invalidate the cache value
|
|
470
|
+
await threadUtils.invalidateDynamicVariables(this.cachedVariables)
|
|
471
|
+
return this.execute()
|
|
472
|
+
}
|
|
268
473
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
474
|
+
// needs to an array for next step
|
|
475
|
+
if (!Array.isArray(rows)) {
|
|
476
|
+
rows = [rows]
|
|
477
|
+
}
|
|
273
478
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
<span class="cstat-no" title="statement not covered" >
|
|
479
|
+
// map into JSON if just raw primitive here
|
|
480
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (rows.find(row => typeof row !== "object")) {
|
|
481
|
+
<span class="cstat-no" title="statement not covered" > rows = rows.map(<span class="fstat-no" title="function not covered" >va</span>lue => (<span class="cstat-no" title="statement not covered" >{ value })</span>)</span>
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// get all the potential fields in the schema
|
|
485
|
+
let keys = rows.flatMap(Object.keys)
|
|
486
|
+
|
|
487
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (integration.end) {
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > integration.end()</span>
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
return { rows, keys, info, extra }
|
|
277
492
|
}
|
|
278
493
|
|
|
279
|
-
|
|
280
|
-
|
|
494
|
+
async runAnotherQuery(queryId, parameters) {
|
|
495
|
+
const db = new CouchDB(this.appId)
|
|
496
|
+
const query = await db.get(queryId)
|
|
497
|
+
const datasource = await db.get(query.datasourceId)
|
|
498
|
+
return new QueryRunner(
|
|
499
|
+
{
|
|
500
|
+
appId: this.appId,
|
|
501
|
+
datasource,
|
|
502
|
+
queryVerb: query.queryVerb,
|
|
503
|
+
fields: query.fields,
|
|
504
|
+
parameters,
|
|
505
|
+
transformer: query.transformer,
|
|
506
|
+
},
|
|
507
|
+
{ noRecursiveQuery: true }
|
|
508
|
+
).execute()
|
|
509
|
+
}
|
|
281
510
|
|
|
282
|
-
|
|
283
|
-
|
|
511
|
+
async getDynamicVariable(variable) {
|
|
512
|
+
let { parameters } = this
|
|
513
|
+
const queryId = variable.queryId,
|
|
514
|
+
name = variable.name
|
|
515
|
+
let value = await threadUtils.checkCacheForDynamicVariable(queryId, name)
|
|
516
|
+
if (!value) {
|
|
517
|
+
value = this.queryResponse[queryId]
|
|
518
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >this.queryResponse[queryId]</span>
|
|
519
|
+
: await this.runAnotherQuery(queryId, parameters)
|
|
520
|
+
// store incase this query is to be called again
|
|
521
|
+
this.queryResponse[queryId] = value
|
|
522
|
+
await threadUtils.storeDynamicVariable(queryId, name, value)
|
|
523
|
+
} else {
|
|
524
|
+
this.cachedVariables.push({ queryId, name })
|
|
525
|
+
}
|
|
526
|
+
return value
|
|
284
527
|
}
|
|
285
528
|
|
|
286
|
-
|
|
529
|
+
async addDatasourceVariables() {
|
|
530
|
+
let { datasource, parameters, fields } = this
|
|
531
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!datasource || !datasource.config) {
|
|
532
|
+
<span class="cstat-no" title="statement not covered" > return parameters</span>
|
|
533
|
+
}
|
|
534
|
+
const staticVars = datasource.config.staticVariables || {}
|
|
535
|
+
const dynamicVars = datasource.config.dynamicVariables || []
|
|
536
|
+
for (let [key, value] of Object.entries(staticVars)) {
|
|
537
|
+
if (!parameters[key]) {
|
|
538
|
+
parameters[key] = value
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
if (!this.noRecursiveQuery) {
|
|
542
|
+
// need to see if this uses any variables
|
|
543
|
+
const stringFields = JSON.stringify(fields)
|
|
544
|
+
const foundVars = dynamicVars.filter(variable => {
|
|
545
|
+
// don't allow a query to use its own dynamic variable (loop)
|
|
546
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (variable.queryId === this.queryId) {
|
|
547
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
548
|
+
}
|
|
549
|
+
// look for {{ variable }} but allow spaces between handlebars
|
|
550
|
+
const regex = new RegExp(`{{[ ]*${variable.name}[ ]*}}`)
|
|
551
|
+
return regex.test(stringFields)
|
|
552
|
+
})
|
|
553
|
+
const dynamics = foundVars.map(dynVar => this.getDynamicVariable(dynVar))
|
|
554
|
+
const responses = await Promise.all(dynamics)
|
|
555
|
+
for (let i = 0; i < foundVars.length; i++) {
|
|
556
|
+
const variable = foundVars[i]
|
|
557
|
+
parameters[variable.name] = processStringSync(variable.value, {
|
|
558
|
+
data: responses[i].rows,
|
|
559
|
+
info: responses[i].extra,
|
|
560
|
+
})
|
|
561
|
+
// make sure its known that this uses dynamic variables in case it fails
|
|
562
|
+
this.hasDynamicVariables = true
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
return parameters
|
|
566
|
+
}
|
|
287
567
|
}
|
|
288
568
|
|
|
289
569
|
module.exports = (input, callback) => {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
input.queryVerb,
|
|
293
|
-
input.query,
|
|
294
|
-
input.transformer
|
|
295
|
-
)
|
|
570
|
+
const Runner = new QueryRunner(input)
|
|
571
|
+
Runner.execute()
|
|
296
572
|
.then(response => {
|
|
297
573
|
callback(null, response)
|
|
298
574
|
})
|
|
@@ -307,7 +583,7 @@ module.exports = (input, callback) => {
|
|
|
307
583
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
308
584
|
Code coverage generated by
|
|
309
585
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
310
|
-
at
|
|
586
|
+
at Wed Jan 12 2022 13:19:56 GMT+0000 (Coordinated Universal Time)
|
|
311
587
|
</div>
|
|
312
588
|
</div>
|
|
313
589
|
<script src="../prettify.js"></script>
|