@budibase/server 1.0.219 → 1.0.220-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.
- package/__mocks__/node-fetch.ts +9 -0
- package/builder/assets/index.530f60fc.js +978 -0
- package/builder/assets/index.7786f497.css +6 -0
- package/builder/assets/{vendor.9bf2fcb4.js → vendor.001dcf8c.js} +163 -163
- package/builder/index.html +3 -3
- package/coverage/clover.xml +927 -832
- package/coverage/coverage-final.json +29 -29
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +111 -12
- package/coverage/lcov-report/api/controllers/backup.js.html +9 -6
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +21 -21
- 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/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +47 -17
- package/coverage/lcov-report/api/controllers/row/index.html +33 -33
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +159 -21
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -8
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.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/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/index.html +15 -15
- package/coverage/lcov-report/api/index.js.html +22 -13
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +32 -2
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +5 -2
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +57 -12
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +17 -17
- 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/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +2 -2
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +58 -34
- 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/loop.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 +4 -4
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +14 -14
- 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 +13 -13
- package/coverage/lcov-report/db/linkedRows/index.js.html +10 -7
- 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 +27 -51
- 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 +81 -81
- 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/builder.js.html +12 -12
- package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +10 -10
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +18 -9
- package/coverage/lcov-report/threads/index.html +25 -25
- package/coverage/lcov-report/threads/query.js.html +301 -79
- package/coverage/lcov-report/threads/utils.js.html +4 -4
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- 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 +14 -14
- package/coverage/lcov-report/utilities/index.html +16 -16
- package/coverage/lcov-report/utilities/index.js.html +9 -9
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- 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 +2 -2
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +57 -9
- package/coverage/lcov.info +1656 -1489
- package/dist/api/controllers/application.js +18 -15
- package/dist/api/controllers/automation.js +28 -2
- package/dist/api/controllers/backup.js +3 -2
- package/dist/api/controllers/public/applications.js +1 -1
- package/dist/api/controllers/public/utils.js +8 -1
- package/dist/api/controllers/query/index.js +31 -3
- package/dist/api/controllers/row/external.js +19 -7
- package/dist/api/controllers/row/internalSearch.js +47 -10
- package/dist/api/controllers/row/utils.js +3 -0
- package/dist/api/index.js +4 -1
- package/dist/api/routes/automation.js +2 -0
- package/dist/api/routes/public/rows.js +7 -2
- package/dist/api/routes/utils/validators.js +1 -0
- package/dist/app.js +20 -0
- package/dist/automations/automationUtils.js +16 -4
- package/dist/automations/logging/index.js +70 -0
- package/dist/automations/steps/executeQuery.js +1 -1
- package/dist/automations/steps/filter.js +38 -29
- package/dist/automations/triggers.js +1 -1
- package/dist/db/linkedRows/index.js +1 -0
- package/dist/db/utils.js +4 -31
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +3 -0
- package/dist/integrations/airtable.js +1 -0
- package/dist/integrations/arangodb.js +1 -0
- package/dist/integrations/base/sql.js +22 -3
- package/dist/integrations/couchdb.js +1 -0
- package/dist/integrations/dynamodb.js +1 -0
- package/dist/integrations/elasticsearch.js +1 -0
- package/dist/integrations/firebase.js +1 -0
- package/dist/integrations/googlesheets.js +1 -0
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +2 -1
- package/dist/integrations/mongodb.js +1 -0
- package/dist/integrations/mysql.js +2 -1
- package/dist/integrations/oracle.js +1 -0
- package/dist/integrations/postgres.js +2 -1
- package/dist/integrations/queries/sql.js +3 -0
- package/dist/integrations/redis.js +1 -0
- package/dist/integrations/rest.js +2 -1
- package/dist/integrations/s3.js +1 -0
- package/dist/integrations/snowflake.js +102 -0
- package/dist/package.json +7 -6
- package/dist/tests/utilities/TestConfiguration.js +19 -6
- package/dist/threads/automation.js +6 -3
- package/dist/threads/index.js +15 -1
- package/dist/threads/query.js +65 -12
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +16 -6
- package/dist/utilities/workerRequests.js +8 -0
- package/package.json +8 -7
- package/scripts/dev/manage.js +2 -0
- package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
- package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
- package/specs/openapi.json +9 -5
- package/specs/openapi.yaml +10 -4
- package/src/api/controllers/application.ts +18 -14
- package/src/api/controllers/automation.js +35 -2
- package/src/api/controllers/backup.js +3 -2
- package/src/api/controllers/public/applications.ts +2 -2
- package/src/api/controllers/public/utils.ts +8 -1
- package/src/api/controllers/query/index.ts +40 -4
- package/src/api/controllers/row/external.js +19 -9
- package/src/api/controllers/row/internalSearch.js +55 -9
- package/src/api/controllers/row/utils.js +3 -0
- package/src/api/index.js +4 -1
- package/src/api/routes/automation.js +10 -0
- package/src/api/routes/public/rows.ts +7 -2
- package/src/api/routes/tests/query.spec.js +166 -1
- package/src/api/routes/utils/validators.js +1 -0
- package/src/app.ts +30 -1
- package/src/automations/automationUtils.js +19 -4
- package/src/automations/logging/index.ts +35 -0
- package/src/automations/steps/executeQuery.js +1 -1
- package/src/automations/steps/filter.js +36 -28
- package/src/automations/tests/filter.spec.js +2 -1
- package/src/automations/triggers.js +1 -1
- package/src/db/linkedRows/index.js +1 -0
- package/src/db/utils.js +5 -13
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +2 -0
- package/src/definitions/openapi.ts +471 -469
- package/src/environment.js +3 -0
- package/src/integrations/airtable.ts +1 -0
- package/src/integrations/arangodb.ts +1 -0
- package/src/integrations/base/sql.ts +29 -11
- package/src/integrations/couchdb.ts +1 -0
- package/src/integrations/dynamodb.ts +1 -0
- package/src/integrations/elasticsearch.ts +1 -0
- package/src/integrations/firebase.ts +1 -0
- package/src/integrations/googlesheets.ts +1 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/microsoftSqlServer.ts +2 -0
- package/src/integrations/mongodb.ts +1 -0
- package/src/integrations/mysql.ts +2 -0
- package/src/integrations/oracle.ts +1 -0
- package/src/integrations/postgres.ts +2 -0
- package/src/integrations/queries/sql.ts +3 -1
- package/src/integrations/redis.ts +1 -0
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +1 -0
- package/src/integrations/snowflake.ts +99 -0
- package/src/integrations/tests/rest.spec.js +16 -1
- package/src/migrations/tests/index.spec.ts +18 -2
- package/src/module.d.ts +2 -0
- package/src/tests/utilities/TestConfiguration.js +22 -3
- package/src/threads/automation.js +6 -3
- package/src/threads/index.ts +5 -1
- package/src/threads/query.js +88 -14
- package/src/utilities/fileSystem/index.js +22 -8
- package/src/utilities/workerRequests.js +16 -0
- package/builder/assets/index.1c640a53.js +0 -1316
- package/builder/assets/index.24307ca0.css +0 -6
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">15.12% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>18/
|
|
28
|
+
<span class='fraction'>18/119</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/50</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">15.51% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>18/
|
|
49
|
+
<span class='fraction'>18/116</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -296,7 +296,17 @@
|
|
|
296
296
|
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
297
|
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
298
|
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
300
310
|
<span class="cline-any cline-neutral"> </span>
|
|
301
311
|
<span class="cline-any cline-neutral"> </span>
|
|
302
312
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -459,21 +469,31 @@
|
|
|
459
469
|
<span class="cline-any cline-no"> </span>
|
|
460
470
|
<span class="cline-any cline-no"> </span>
|
|
461
471
|
<span class="cline-any cline-no"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
472
|
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
464
474
|
<span class="cline-any cline-no"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
477
|
<span class="cline-any cline-no"> </span>
|
|
466
478
|
<span class="cline-any cline-neutral"> </span>
|
|
467
479
|
<span class="cline-any cline-neutral"> </span>
|
|
468
480
|
<span class="cline-any cline-neutral"> </span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-no"> </span>
|
|
469
483
|
<span class="cline-any cline-no"> </span>
|
|
470
484
|
<span class="cline-any cline-neutral"> </span>
|
|
471
485
|
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-no"> </span>
|
|
487
|
+
<span class="cline-any cline-no"> </span>
|
|
488
|
+
<span class="cline-any cline-no"> </span>
|
|
489
|
+
<span class="cline-any cline-no"> </span>
|
|
490
|
+
<span class="cline-any cline-no"> </span>
|
|
472
491
|
<span class="cline-any cline-neutral"> </span>
|
|
473
492
|
<span class="cline-any cline-neutral"> </span>
|
|
474
493
|
<span class="cline-any cline-neutral"> </span>
|
|
475
494
|
<span class="cline-any cline-no"> </span>
|
|
476
495
|
<span class="cline-any cline-neutral"> </span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
497
|
<span class="cline-any cline-no"> </span>
|
|
478
498
|
<span class="cline-any cline-no"> </span>
|
|
479
499
|
<span class="cline-any cline-no"> </span>
|
|
@@ -686,34 +706,44 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
|
|
|
686
706
|
}
|
|
687
707
|
|
|
688
708
|
exports.exportRows = <span class="fstat-no" title="function not covered" >as</span>ync ctx => {
|
|
689
|
-
const { datasourceId
|
|
709
|
+
const { datasourceId } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(ctx.params.tableId)</span>
|
|
690
710
|
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
691
|
-
|
|
711
|
+
const format = <span class="cstat-no" title="statement not covered" >ctx.query.format</span>
|
|
712
|
+
const { columns } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
692
713
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
|
|
693
714
|
<span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
|
|
694
715
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
|
|
695
716
|
}
|
|
696
|
-
const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
|
|
697
|
-
const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
|
|
698
717
|
<span class="cstat-no" title="statement not covered" > ctx.request.body = {</span>
|
|
699
718
|
query: {
|
|
700
719
|
oneOf: {
|
|
701
|
-
|
|
702
|
-
<span class="fstat-no" title="function not covered" > id</span> => <span class="cstat-no" title="statement not covered" >breakRowIdField(id)[0]</span>
|
|
703
|
-
),
|
|
720
|
+
_id: ctx.request.body.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w => <span class="cstat-no" title="statement not covered" >JSON.parse(decodeURI(row))[0])</span>,
|
|
704
721
|
},
|
|
705
722
|
},
|
|
706
723
|
}
|
|
707
724
|
|
|
708
725
|
let result = <span class="cstat-no" title="statement not covered" >await exports.search(ctx)</span>
|
|
726
|
+
let rows = <span class="cstat-no" title="statement not covered" >[]</span>
|
|
727
|
+
|
|
728
|
+
// Filter data to only specified columns if required
|
|
729
|
+
<span class="cstat-no" title="statement not covered" > if (columns && columns.length) {</span>
|
|
730
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < result.rows.length; i++) {</span>
|
|
731
|
+
<span class="cstat-no" title="statement not covered" > rows[i] = {}</span>
|
|
732
|
+
<span class="cstat-no" title="statement not covered" > for (let column of columns) {</span>
|
|
733
|
+
<span class="cstat-no" title="statement not covered" > rows[i][column] = result.rows[i][column]</span>
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
} else {
|
|
737
|
+
<span class="cstat-no" title="statement not covered" > rows = result.rows</span>
|
|
738
|
+
}
|
|
709
739
|
|
|
710
|
-
let headers = <span class="cstat-no" title="statement not covered" >Object.keys(
|
|
740
|
+
let headers = <span class="cstat-no" title="statement not covered" >Object.keys(rows[0])</span>
|
|
711
741
|
const exporter = <span class="cstat-no" title="statement not covered" >exporters[format]</span>
|
|
712
742
|
const filename = <span class="cstat-no" title="statement not covered" >`export.${format}`</span>
|
|
713
743
|
|
|
714
744
|
// send down the file
|
|
715
745
|
<span class="cstat-no" title="statement not covered" > ctx.attachment(filename)</span>
|
|
716
|
-
<span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers,
|
|
746
|
+
<span class="cstat-no" title="statement not covered" > return apiFileReturn(exporter(headers, rows))</span>
|
|
717
747
|
}
|
|
718
748
|
|
|
719
749
|
exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx => {
|
|
@@ -769,7 +799,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
|
|
|
769
799
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
770
800
|
Code coverage generated by
|
|
771
801
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
772
|
-
at
|
|
802
|
+
at Mon Jul 11 2022 09:30:59 GMT+0000 (Coordinated Universal Time)
|
|
773
803
|
</div>
|
|
774
804
|
<script src="../../../prettify.js"></script>
|
|
775
805
|
<script>
|
|
@@ -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">56.91% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>362/636</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">35.
|
|
33
|
+
<span class="strong">35.61% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>104/292</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">52.27% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>46/
|
|
42
|
+
<span class='fraction'>46/88</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">57.
|
|
47
|
+
<span class="strong">57.16% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>355/621</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file low" data-value="external.js"><a href="external.js.html">external.js</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="15.12" class="pic low">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 15%"></div><div class="cover-empty" style="width: 85%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="15.12" class="pct low">15.12%</td>
|
|
87
|
+
<td data-value="119" class="abs low">18/119</td>
|
|
88
88
|
<td data-value="0" class="pct low">0%</td>
|
|
89
|
-
<td data-value="
|
|
89
|
+
<td data-value="50" class="abs low">0/50</td>
|
|
90
90
|
<td data-value="0" class="pct low">0%</td>
|
|
91
91
|
<td data-value="15" class="abs low">0/15</td>
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="15.51" class="pct low">15.51%</td>
|
|
93
|
+
<td data-value="116" class="abs low">18/116</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -110,17 +110,17 @@
|
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
112
|
<td class="file medium" data-value="internalSearch.js"><a href="internalSearch.js.html">internalSearch.js</a></td>
|
|
113
|
-
<td data-value="60
|
|
113
|
+
<td data-value="60" class="pic medium">
|
|
114
114
|
<div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
|
|
115
115
|
</td>
|
|
116
|
-
<td data-value="60
|
|
117
|
-
<td data-value="
|
|
118
|
-
<td data-value="40" class="pct low">40%</td>
|
|
119
|
-
<td data-value="
|
|
120
|
-
<td data-value="
|
|
121
|
-
<td data-value="
|
|
122
|
-
<td data-value="
|
|
123
|
-
<td data-value="
|
|
116
|
+
<td data-value="60" class="pct medium">60%</td>
|
|
117
|
+
<td data-value="180" class="abs medium">108/180</td>
|
|
118
|
+
<td data-value="40.7" class="pct low">40.7%</td>
|
|
119
|
+
<td data-value="113" class="abs low">46/113</td>
|
|
120
|
+
<td data-value="51.42" class="pct medium">51.42%</td>
|
|
121
|
+
<td data-value="35" class="abs medium">18/35</td>
|
|
122
|
+
<td data-value="60.79" class="pct medium">60.79%</td>
|
|
123
|
+
<td data-value="176" class="abs medium">107/176</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
@@ -140,17 +140,17 @@
|
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
142
142
|
<td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
|
|
143
|
-
<td data-value="
|
|
144
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
143
|
+
<td data-value="66.66" class="pic medium">
|
|
144
|
+
<div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
|
|
145
145
|
</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
148
|
-
<td data-value="
|
|
149
|
-
<td data-value="
|
|
146
|
+
<td data-value="66.66" class="pct medium">66.66%</td>
|
|
147
|
+
<td data-value="54" class="abs medium">36/54</td>
|
|
148
|
+
<td data-value="38.23" class="pct low">38.23%</td>
|
|
149
|
+
<td data-value="34" class="abs low">13/34</td>
|
|
150
150
|
<td data-value="66.66" class="pct medium">66.66%</td>
|
|
151
151
|
<td data-value="6" class="abs medium">4/6</td>
|
|
152
|
-
<td data-value="
|
|
153
|
-
<td data-value="
|
|
152
|
+
<td data-value="66.03" class="pct medium">66.03%</td>
|
|
153
|
+
<td data-value="53" class="abs medium">35/53</td>
|
|
154
154
|
</tr>
|
|
155
155
|
|
|
156
156
|
</tbody>
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
162
|
Code coverage generated by
|
|
163
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
-
at
|
|
164
|
+
at Mon Jul 11 2022 09:30:59 GMT+0000 (Coordinated Universal Time)
|
|
165
165
|
</div>
|
|
166
166
|
<script src="../../../prettify.js"></script>
|
|
167
167
|
<script>
|
|
@@ -1435,7 +1435,7 @@ exports.fetchEnrichedRow = async ctx => {
|
|
|
1435
1435
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1436
1436
|
Code coverage generated by
|
|
1437
1437
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1438
|
-
at
|
|
1438
|
+
at Mon Jul 11 2022 09:30:59 GMT+0000 (Coordinated Universal Time)
|
|
1439
1439
|
</div>
|
|
1440
1440
|
<script src="../../../prettify.js"></script>
|
|
1441
1441
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">60
|
|
26
|
+
<span class="strong">60% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>108/180</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">40% </span>
|
|
33
|
+
<span class="strong">40.7% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>46/113</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">51.42% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>18/
|
|
42
|
+
<span class='fraction'>18/35</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">60.79% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>107/176</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -461,7 +461,53 @@
|
|
|
461
461
|
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
462
|
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
463
|
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
-
<a name='L399'></a><a href='#L399'>399</a
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">43x</span>
|
|
465
511
|
<span class="cline-any cline-yes">43x</span>
|
|
466
512
|
<span class="cline-any cline-yes">43x</span>
|
|
467
513
|
<span class="cline-any cline-yes">43x</span>
|
|
@@ -482,6 +528,8 @@
|
|
|
482
528
|
<span class="cline-any cline-neutral"> </span>
|
|
483
529
|
<span class="cline-any cline-neutral"> </span>
|
|
484
530
|
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
532
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
533
|
<span class="cline-any cline-yes">1x</span>
|
|
486
534
|
<span class="cline-any cline-yes">1x</span>
|
|
487
535
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -576,6 +624,11 @@
|
|
|
576
624
|
<span class="cline-any cline-neutral"> </span>
|
|
577
625
|
<span class="cline-any cline-neutral"> </span>
|
|
578
626
|
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-no"> </span>
|
|
628
|
+
<span class="cline-any cline-no"> </span>
|
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-neutral"> </span>
|
|
631
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
632
|
<span class="cline-any cline-neutral"> </span>
|
|
580
633
|
<span class="cline-any cline-neutral"> </span>
|
|
581
634
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -605,9 +658,23 @@
|
|
|
605
658
|
<span class="cline-any cline-yes">1x</span>
|
|
606
659
|
<span class="cline-any cline-yes">1x</span>
|
|
607
660
|
<span class="cline-any cline-yes">1x</span>
|
|
661
|
+
<span class="cline-any cline-yes">1x</span>
|
|
662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
663
|
+
<span class="cline-any cline-yes">1x</span>
|
|
664
|
+
<span class="cline-any cline-yes">1x</span>
|
|
665
|
+
<span class="cline-any cline-yes">1x</span>
|
|
666
|
+
<span class="cline-any cline-neutral"> </span>
|
|
667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
668
|
+
<span class="cline-any cline-yes">1x</span>
|
|
669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
670
|
+
<span class="cline-any cline-yes">1x</span>
|
|
671
|
+
<span class="cline-any cline-no"> </span>
|
|
672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
673
|
+
<span class="cline-any cline-yes">1x</span>
|
|
608
674
|
<span class="cline-any cline-neutral"> </span>
|
|
609
675
|
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-
|
|
676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
677
|
+
<span class="cline-any cline-yes">9x</span>
|
|
611
678
|
<span class="cline-any cline-yes">1x</span>
|
|
612
679
|
<span class="cline-any cline-neutral"> </span>
|
|
613
680
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -616,6 +683,9 @@
|
|
|
616
683
|
<span class="cline-any cline-no"> </span>
|
|
617
684
|
<span class="cline-any cline-neutral"> </span>
|
|
618
685
|
<span class="cline-any cline-yes">1x</span>
|
|
686
|
+
<span class="cline-any cline-yes">1x</span>
|
|
687
|
+
<span class="cline-any cline-neutral"> </span>
|
|
688
|
+
<span class="cline-any cline-yes">1x</span>
|
|
619
689
|
<span class="cline-any cline-neutral"> </span>
|
|
620
690
|
<span class="cline-any cline-neutral"> </span>
|
|
621
691
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -664,22 +734,44 @@
|
|
|
664
734
|
<span class="cline-any cline-yes">1x</span>
|
|
665
735
|
<span class="cline-any cline-neutral"> </span>
|
|
666
736
|
<span class="cline-any cline-yes">1x</span>
|
|
737
|
+
<span class="cline-any cline-yes">1x</span>
|
|
738
|
+
<span class="cline-any cline-no"> </span>
|
|
739
|
+
<span class="cline-any cline-no"> </span>
|
|
740
|
+
<span class="cline-any cline-neutral"> </span>
|
|
667
741
|
<span class="cline-any cline-no"> </span>
|
|
668
742
|
<span class="cline-any cline-neutral"> </span>
|
|
743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
744
|
+
<span class="cline-any cline-yes">1x</span>
|
|
669
745
|
<span class="cline-any cline-yes">1x</span>
|
|
670
746
|
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-yes">1x</span>
|
|
748
|
+
<span class="cline-any cline-yes">1x</span>
|
|
671
749
|
<span class="cline-any cline-neutral"> </span>
|
|
672
750
|
<span class="cline-any cline-yes">1x</span>
|
|
673
751
|
<span class="cline-any cline-yes">1x</span>
|
|
674
752
|
<span class="cline-any cline-no"> </span>
|
|
675
753
|
<span class="cline-any cline-no"> </span>
|
|
754
|
+
<span class="cline-any cline-no"> </span>
|
|
755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
756
|
+
<span class="cline-any cline-no"> </span>
|
|
757
|
+
<span class="cline-any cline-neutral"> </span>
|
|
758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
759
|
+
<span class="cline-any cline-no"> </span>
|
|
760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
763
|
+
<span class="cline-any cline-no"> </span>
|
|
764
|
+
<span class="cline-any cline-no"> </span>
|
|
765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
676
768
|
<span class="cline-any cline-neutral"> </span>
|
|
677
769
|
<span class="cline-any cline-no"> </span>
|
|
678
770
|
<span class="cline-any cline-neutral"> </span>
|
|
679
771
|
<span class="cline-any cline-neutral"> </span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
680
773
|
<span class="cline-any cline-yes">1x</span>
|
|
681
774
|
<span class="cline-any cline-yes">1x</span>
|
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
683
775
|
<span class="cline-any cline-yes">1x</span>
|
|
684
776
|
<span class="cline-any cline-yes">1x</span>
|
|
685
777
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -871,6 +963,7 @@ const { getAppId } = require("@budibase/backend-core/context")
|
|
|
871
963
|
class QueryBuilder {
|
|
872
964
|
constructor(base) {
|
|
873
965
|
this.query = {
|
|
966
|
+
allOr: false,
|
|
874
967
|
string: {},
|
|
875
968
|
fuzzy: {},
|
|
876
969
|
range: {},
|
|
@@ -878,6 +971,7 @@ class QueryBuilder {
|
|
|
878
971
|
notEqual: {},
|
|
879
972
|
empty: {},
|
|
880
973
|
notEmpty: {},
|
|
974
|
+
oneOf: {},
|
|
881
975
|
...base,
|
|
882
976
|
}
|
|
883
977
|
this.limit = 50
|
|
@@ -970,6 +1064,11 @@ class QueryBuilder {
|
|
|
970
1064
|
|
|
971
1065
|
<span class="fstat-no" title="function not covered" > ad</span>dNotEmpty(key, value) {
|
|
972
1066
|
<span class="cstat-no" title="statement not covered" > this.query.notEmpty[key] = value</span>
|
|
1067
|
+
<span class="cstat-no" title="statement not covered" > return this</span>
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
<span class="fstat-no" title="function not covered" > ad</span>dOneOf(key, value) {
|
|
1071
|
+
<span class="cstat-no" title="statement not covered" > this.query.oneOf[key] = value</span>
|
|
973
1072
|
<span class="cstat-no" title="statement not covered" > return this</span>
|
|
974
1073
|
}
|
|
975
1074
|
|
|
@@ -1001,8 +1100,22 @@ class QueryBuilder {
|
|
|
1001
1100
|
|
|
1002
1101
|
buildSearchQuery() {
|
|
1003
1102
|
const builder = this
|
|
1004
|
-
let
|
|
1103
|
+
let allOr = this.query && this.query.allOr
|
|
1104
|
+
let query = allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"" </span>: "*:*"
|
|
1005
1105
|
const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
|
|
1106
|
+
let tableId
|
|
1107
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal.tableId) {
|
|
1108
|
+
tableId = this.query.equal.tableId
|
|
1109
|
+
delete this.query.equal.tableId
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
const equal = (key, value) => {
|
|
1113
|
+
// 0 evaluates to false, which means we would return all rows if we don't check it
|
|
1114
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!value && <span class="branch-1 cbranch-no" title="branch not covered" >value !== 0)</span> {
|
|
1115
|
+
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1116
|
+
}
|
|
1117
|
+
return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
|
|
1118
|
+
}
|
|
1006
1119
|
|
|
1007
1120
|
function build(structure, queryFn) {
|
|
1008
1121
|
for (let [key, value] of Object.entries(structure)) {
|
|
@@ -1013,7 +1126,10 @@ class QueryBuilder {
|
|
|
1013
1126
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (expression == null) {
|
|
1014
1127
|
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
1015
1128
|
}
|
|
1016
|
-
query
|
|
1129
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (query.length > 0) {
|
|
1130
|
+
query += ` ${allOr ? <span class="branch-0 cbranch-no" title="branch not covered" >"OR" </span>: "AND"} `
|
|
1131
|
+
}
|
|
1132
|
+
query += expression
|
|
1017
1133
|
}
|
|
1018
1134
|
}
|
|
1019
1135
|
|
|
@@ -1059,13 +1175,7 @@ class QueryBuilder {
|
|
|
1059
1175
|
})
|
|
1060
1176
|
}
|
|
1061
1177
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal) {
|
|
1062
|
-
build(this.query.equal,
|
|
1063
|
-
// 0 evaluates to false, which means we would return all rows if we don't check it
|
|
1064
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!value && <span class="branch-1 cbranch-no" title="branch not covered" >value !== 0)</span> {
|
|
1065
|
-
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1066
|
-
}
|
|
1067
|
-
return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
|
|
1068
|
-
})
|
|
1178
|
+
build(this.query.equal, equal)
|
|
1069
1179
|
}
|
|
1070
1180
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEqual) {
|
|
1071
1181
|
build(this.query.notEqual, <span class="fstat-no" title="function not covered" >(k</span>ey, value) => {
|
|
@@ -1081,6 +1191,34 @@ class QueryBuilder {
|
|
|
1081
1191
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
|
|
1082
1192
|
build(this.query.notEmpty, <span class="fstat-no" title="function not covered" >ke</span>y => <span class="cstat-no" title="statement not covered" >`${key}:["" TO *]`)</span>
|
|
1083
1193
|
}
|
|
1194
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.oneOf) {
|
|
1195
|
+
build(this.query.oneOf, <span class="fstat-no" title="function not covered" >(k</span>ey, value) => {
|
|
1196
|
+
<span class="cstat-no" title="statement not covered" > if (!Array.isArray(value)) {</span>
|
|
1197
|
+
<span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
|
|
1198
|
+
<span class="cstat-no" title="statement not covered" > value = value.split(",")</span>
|
|
1199
|
+
} else {
|
|
1200
|
+
<span class="cstat-no" title="statement not covered" > return ""</span>
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
let orStatement = <span class="cstat-no" title="statement not covered" >`${builder.preprocess(</span>
|
|
1204
|
+
value[0],
|
|
1205
|
+
allPreProcessingOpts
|
|
1206
|
+
)}`
|
|
1207
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >1;</span> i < value.length; i++) {</span>
|
|
1208
|
+
<span class="cstat-no" title="statement not covered" > orStatement += ` OR ${builder.preprocess(</span>
|
|
1209
|
+
value[i],
|
|
1210
|
+
allPreProcessingOpts
|
|
1211
|
+
)}`
|
|
1212
|
+
}
|
|
1213
|
+
<span class="cstat-no" title="statement not covered" > return `${key}:(${orStatement})`</span>
|
|
1214
|
+
})
|
|
1215
|
+
}
|
|
1216
|
+
// make sure table ID is always added as an AND
|
|
1217
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (tableId) {
|
|
1218
|
+
query = `(${query})`
|
|
1219
|
+
allOr = false
|
|
1220
|
+
build({ tableId }, equal)
|
|
1221
|
+
}
|
|
1084
1222
|
return query
|
|
1085
1223
|
}
|
|
1086
1224
|
|
|
@@ -1264,7 +1402,7 @@ exports.fullSearch = async (query, params) => {
|
|
|
1264
1402
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1265
1403
|
Code coverage generated by
|
|
1266
1404
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1267
|
-
at
|
|
1405
|
+
at Mon Jul 11 2022 09:30:59 GMT+0000 (Coordinated Universal Time)
|
|
1268
1406
|
</div>
|
|
1269
1407
|
<script src="../../../prettify.js"></script>
|
|
1270
1408
|
<script>
|
|
@@ -538,7 +538,7 @@ exports.finaliseRow = async (
|
|
|
538
538
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
539
539
|
Code coverage generated by
|
|
540
540
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
541
|
-
at
|
|
541
|
+
at Mon Jul 11 2022 09:30:59 GMT+0000 (Coordinated Universal Time)
|
|
542
542
|
</div>
|
|
543
543
|
<script src="../../../prettify.js"></script>
|
|
544
544
|
<script>
|