@budibase/server 0.9.188 → 0.9.190-alpha.2
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/Dockerfile +7 -1
- package/__mocks__/mssql.ts +1 -1
- package/__mocks__/oracledb.ts +31 -0
- package/__mocks__/pg.ts +3 -0
- package/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/index.7d405e74.css +1 -0
- package/builder/assets/index.edea4fa5.js +1316 -0
- package/builder/assets/oracle.66592424.png +0 -0
- package/builder/assets/vendor.470042a4.js +152 -0
- package/builder/assets/vendor.5e1fe644.css +1 -0
- package/builder/index.html +4 -4
- package/coverage/clover.xml +1507 -1081
- package/coverage/coverage-final.json +93 -89
- package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
- package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/controllers/application.js.html +64 -13
- package/coverage/lcov-report/api/controllers/auth.js.html +19 -10
- package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +232 -28
- package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
- package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
- package/coverage/lcov-report/api/controllers/index.html +91 -91
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query.js.html +53 -209
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
- package/coverage/lcov-report/api/controllers/row/external.js.html +17 -8
- package/coverage/lcov-report/api/controllers/row/index.html +26 -26
- package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/utils.js.html +21 -30
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +3 -3
- package/coverage/lcov-report/api/controllers/table/external.js.html +1001 -0
- package/coverage/lcov-report/api/controllers/table/index.html +56 -26
- package/coverage/lcov-report/api/controllers/table/index.js.html +80 -350
- package/coverage/lcov-report/api/controllers/table/internal.js.html +545 -0
- package/coverage/lcov-report/api/controllers/table/utils.js.html +175 -52
- package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
- package/coverage/lcov-report/api/controllers/user.js.html +390 -33
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +19 -4
- package/coverage/lcov-report/api/controllers/view/index.html +22 -22
- package/coverage/lcov-report/api/controllers/view/index.js.html +52 -13
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- 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/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- 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 +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +4 -4
- package/coverage/lcov-report/api/routes/index.js.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/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +5 -2
- 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/row.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/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +35 -2
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +17 -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 +2 -2
- package/coverage/lcov-report/automations/automationUtils.js.html +4 -4
- package/coverage/lcov-report/automations/bullboard.js.html +71 -20
- package/coverage/lcov-report/automations/index.html +35 -50
- package/coverage/lcov-report/automations/index.js.html +2 -2
- 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 +3 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +14 -14
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
- package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
- 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 +7 -7
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +22 -10
- package/coverage/lcov-report/automations/utils.js.html +42 -12
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +87 -21
- 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/client.js.html +2 -2
- package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
- package/coverage/lcov-report/db/index.html +2 -2
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
- package/coverage/lcov-report/db/newid.js.html +3 -3
- package/coverage/lcov-report/db/utils.js.html +57 -57
- package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
- package/coverage/lcov-report/events/index.html +6 -6
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +5 -5
- package/coverage/lcov-report/index.html +106 -91
- 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 +2 -2
- package/coverage/lcov-report/middleware/authorized.js.html +11 -8
- package/coverage/lcov-report/middleware/builder.js.html +16 -7
- package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
- package/coverage/lcov-report/middleware/index.html +23 -23
- package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
- package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
- package/coverage/lcov-report/threads/index.html +141 -0
- package/coverage/lcov-report/threads/index.js.html +278 -0
- package/coverage/lcov-report/threads/query.js.html +278 -0
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- 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 +144 -15
- package/coverage/lcov-report/utilities/global.js.html +26 -11
- package/coverage/lcov-report/utilities/index.html +48 -48
- package/coverage/lcov-report/utilities/index.js.html +47 -14
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
- package/coverage/lcov-report/utilities/queue/index.html +14 -14
- 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 +4 -4
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
- package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
- package/coverage/lcov-report/utilities/security.js.html +3 -3
- 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 +5 -5
- package/coverage/lcov.info +2495 -1737
- package/dist/api/controllers/application.js +15 -1
- package/dist/api/controllers/auth.js +3 -3
- package/dist/api/controllers/datasource.js +67 -16
- package/dist/api/controllers/deploy/index.js +2 -0
- package/dist/api/controllers/dev.js +4 -1
- package/dist/api/controllers/query.js +30 -58
- package/dist/api/controllers/row/ExternalRequest.js +78 -34
- package/dist/api/controllers/row/external.js +3 -1
- package/dist/api/controllers/row/utils.js +6 -12
- package/dist/api/controllers/table/external.js +249 -0
- package/dist/api/controllers/table/index.js +49 -123
- package/dist/api/controllers/table/internal.js +150 -0
- package/dist/api/controllers/table/utils.js +62 -28
- package/dist/api/controllers/user.js +123 -11
- package/dist/api/controllers/view/exporters.js +4 -0
- package/dist/api/controllers/view/index.js +14 -2
- package/dist/api/routes/query.js +1 -1
- package/dist/api/routes/table.js +7 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/app.js +2 -11
- package/dist/automations/bullboard.js +37 -10
- package/dist/automations/triggers.js +7 -3
- package/dist/automations/utils.js +11 -2
- package/dist/constants/index.js +19 -0
- package/dist/definitions/datasource.js +5 -0
- package/dist/environment.js +13 -0
- package/dist/integrations/base/IntegrationBase.js +2 -0
- package/dist/integrations/base/datasourcePlus.js +2 -0
- package/dist/integrations/base/sql.js +353 -177
- package/dist/integrations/base/sqlTable.js +143 -0
- package/dist/integrations/base/utils.js +30 -0
- package/dist/integrations/index.js +6 -0
- package/dist/integrations/microsoftSqlServer.js +117 -9
- package/dist/integrations/mysql.js +16 -85
- package/dist/integrations/oracle.js +347 -0
- package/dist/integrations/postgres.js +35 -28
- package/dist/integrations/utils.js +71 -9
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +12 -7
- package/dist/tests/utilities/TestConfiguration.js +2 -1
- package/dist/{automations/thread.js → threads/automation.js} +26 -8
- package/dist/threads/index.js +64 -0
- package/dist/threads/query.js +64 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/csvParser.js +46 -5
- package/dist/utilities/global.js +6 -2
- package/dist/utilities/index.js +11 -0
- package/dist/utilities/queue/inMemoryQueue.js +8 -0
- package/dist/utilities/scriptRunner.js +4 -1
- package/package.json +13 -8
- package/scripts/dev/manage.js +1 -0
- package/scripts/integrations/mssql/data/Dockerfile +9 -0
- package/scripts/integrations/mssql/data/entrypoint.sh +24 -0
- package/scripts/integrations/mssql/data/setup.sql +54 -0
- package/scripts/integrations/mssql/docker-compose.yaml +12 -0
- package/scripts/integrations/mssql/reset.sh +3 -0
- package/scripts/integrations/oracle/docker-compose.yml +19 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
- package/scripts/integrations/oracle/oracle.md +90 -0
- package/scripts/integrations/postgres/docker-compose.yml +3 -3
- package/scripts/likeCypress.ts +33 -0
- package/src/api/controllers/application.js +18 -1
- package/src/api/controllers/auth.js +3 -0
- package/src/api/controllers/datasource.js +84 -16
- package/src/api/controllers/deploy/index.js +2 -0
- package/src/api/controllers/dev.js +4 -1
- package/src/api/controllers/query.js +29 -81
- package/src/api/controllers/row/ExternalRequest.ts +91 -36
- package/src/api/controllers/row/external.js +4 -1
- package/src/api/controllers/row/utils.js +8 -11
- package/src/api/controllers/table/external.js +307 -0
- package/src/api/controllers/table/index.js +47 -137
- package/src/api/controllers/table/internal.js +155 -0
- package/src/api/controllers/table/utils.js +74 -33
- package/src/api/controllers/user.js +132 -13
- package/src/api/controllers/view/exporters.js +5 -0
- package/src/api/controllers/view/index.js +15 -2
- package/src/api/routes/query.js +1 -0
- package/src/api/routes/table.js +11 -0
- package/src/api/routes/tests/datasource.spec.js +2 -2
- package/src/api/routes/tests/misc.spec.js +5 -1
- package/src/api/routes/tests/query.spec.js +0 -1
- package/src/api/routes/user.js +5 -0
- package/src/app.ts +2 -10
- package/src/automations/bullboard.js +28 -11
- package/src/automations/tests/automation.spec.js +3 -4
- package/src/automations/triggers.js +7 -3
- package/src/automations/utils.js +12 -2
- package/src/constants/index.js +22 -0
- package/src/definitions/common.ts +7 -1
- package/src/definitions/datasource.ts +10 -3
- package/src/environment.js +15 -0
- package/src/integrations/airtable.ts +2 -1
- package/src/integrations/arangodb.ts +2 -1
- package/src/integrations/base/IntegrationBase.ts +6 -0
- package/src/integrations/base/datasourcePlus.ts +9 -0
- package/src/integrations/base/sql.ts +377 -218
- package/src/integrations/base/sqlTable.ts +180 -0
- package/src/integrations/base/utils.ts +22 -0
- package/src/integrations/couchdb.ts +2 -1
- package/src/integrations/dynamodb.ts +2 -1
- package/src/integrations/elasticsearch.ts +2 -1
- package/src/integrations/index.ts +7 -0
- package/src/integrations/microsoftSqlServer.ts +145 -13
- package/src/integrations/mongodb.ts +2 -1
- package/src/integrations/mysql.ts +23 -95
- package/src/integrations/oracle.ts +458 -0
- package/src/integrations/postgres.ts +45 -35
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +2 -1
- package/src/integrations/tests/microsoftSqlServer.spec.js +22 -15
- package/src/integrations/tests/oracle.spec.js +94 -0
- package/src/integrations/tests/postgres.spec.js +4 -0
- package/src/integrations/utils.ts +78 -8
- package/src/middleware/authorized.js +2 -1
- package/src/middleware/builder.js +4 -1
- package/src/tests/utilities/TestConfiguration.js +2 -1
- package/src/{automations/thread.js → threads/automation.js} +27 -8
- package/src/threads/index.js +66 -0
- package/src/threads/query.js +66 -0
- package/src/utilities/csvParser.js +48 -5
- package/src/utilities/global.js +7 -2
- package/src/utilities/index.js +11 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -0
- package/src/utilities/scriptRunner.js +4 -1
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
- package/src/utilities/tests/csvParser.spec.js +3 -0
- package/tsconfig.json +1 -1
- package/builder/assets/index.550fdba7.js +0 -201
- package/builder/assets/index.7469e1e4.css +0 -29
- package/builder/assets/vendor.278a305c.js +0 -9
- package/builder/assets/vendor.d75d5eb7.css +0 -1
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">66.
|
|
26
|
+
<span class="strong">66.85% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>117/175</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">45.55% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>41/90</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">62.96% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>17/27</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">67.
|
|
47
|
+
<span class="strong">67.44% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>116/172</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -375,7 +375,48 @@
|
|
|
375
375
|
<a name='L316'></a><a href='#L316'>316</a>
|
|
376
376
|
<a name='L317'></a><a href='#L317'>317</a>
|
|
377
377
|
<a name='L318'></a><a href='#L318'>318</a>
|
|
378
|
-
<a name='L319'></a><a href='#L319'>319</a
|
|
378
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
379
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
380
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
381
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
382
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
383
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
384
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
385
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
386
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
387
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
388
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
389
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
390
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
391
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
392
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
393
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
394
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
395
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
396
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
397
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
398
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
399
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
400
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
401
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
402
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
403
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
404
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
405
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
406
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
407
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
408
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
409
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
410
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
411
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
412
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
413
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
414
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
415
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
416
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
417
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
418
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
419
|
+
<a name='L360'></a><a href='#L360'>360</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
379
420
|
<span class="cline-any cline-yes">34x</span>
|
|
380
421
|
<span class="cline-any cline-neutral"> </span>
|
|
381
422
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -450,11 +491,16 @@
|
|
|
450
491
|
<span class="cline-any cline-neutral"> </span>
|
|
451
492
|
<span class="cline-any cline-yes">34x</span>
|
|
452
493
|
<span class="cline-any cline-yes">100x</span>
|
|
453
|
-
<span class="cline-any cline-yes">
|
|
494
|
+
<span class="cline-any cline-yes">99x</span>
|
|
454
495
|
<span class="cline-any cline-neutral"> </span>
|
|
455
496
|
<span class="cline-any cline-yes">1x</span>
|
|
456
497
|
<span class="cline-any cline-neutral"> </span>
|
|
457
498
|
<span class="cline-any cline-yes">1x</span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-yes">1x</span>
|
|
458
504
|
<span class="cline-any cline-yes">1x</span>
|
|
459
505
|
<span class="cline-any cline-yes">1x</span>
|
|
460
506
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -485,8 +531,7 @@
|
|
|
485
531
|
<span class="cline-any cline-yes">1x</span>
|
|
486
532
|
<span class="cline-any cline-yes">1x</span>
|
|
487
533
|
<span class="cline-any cline-yes">1x</span>
|
|
488
|
-
<span class="cline-any cline-
|
|
489
|
-
<span class="cline-any cline-yes">100x</span>
|
|
534
|
+
<span class="cline-any cline-yes">1x</span>
|
|
490
535
|
<span class="cline-any cline-neutral"> </span>
|
|
491
536
|
<span class="cline-any cline-neutral"> </span>
|
|
492
537
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -611,12 +656,12 @@
|
|
|
611
656
|
<span class="cline-any cline-neutral"> </span>
|
|
612
657
|
<span class="cline-any cline-neutral"> </span>
|
|
613
658
|
<span class="cline-any cline-yes">34x</span>
|
|
614
|
-
<span class="cline-any cline-yes">
|
|
615
|
-
<span class="cline-any cline-yes">
|
|
659
|
+
<span class="cline-any cline-yes">30x</span>
|
|
660
|
+
<span class="cline-any cline-yes">30x</span>
|
|
616
661
|
<span class="cline-any cline-no"> </span>
|
|
617
662
|
<span class="cline-any cline-no"> </span>
|
|
618
663
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-yes">
|
|
664
|
+
<span class="cline-any cline-yes">30x</span>
|
|
620
665
|
<span class="cline-any cline-neutral"> </span>
|
|
621
666
|
<span class="cline-any cline-neutral"> </span>
|
|
622
667
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -693,6 +738,43 @@
|
|
|
693
738
|
<span class="cline-any cline-neutral"> </span>
|
|
694
739
|
<span class="cline-any cline-neutral"> </span>
|
|
695
740
|
<span class="cline-any cline-yes">34x</span>
|
|
741
|
+
<span class="cline-any cline-no"> </span>
|
|
742
|
+
<span class="cline-any cline-neutral"> </span>
|
|
743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
744
|
+
<span class="cline-any cline-yes">34x</span>
|
|
745
|
+
<span class="cline-any cline-no"> </span>
|
|
746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
748
|
+
<span class="cline-any cline-yes">34x</span>
|
|
749
|
+
<span class="cline-any cline-no"> </span>
|
|
750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-no"> </span>
|
|
755
|
+
<span class="cline-any cline-no"> </span>
|
|
756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-no"> </span>
|
|
758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
760
|
+
<span class="cline-any cline-yes">34x</span>
|
|
761
|
+
<span class="cline-any cline-yes">99x</span>
|
|
762
|
+
<span class="cline-any cline-yes">95x</span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-yes">4x</span>
|
|
765
|
+
<span class="cline-any cline-yes">11x</span>
|
|
766
|
+
<span class="cline-any cline-yes">11x</span>
|
|
767
|
+
<span class="cline-any cline-yes">7x</span>
|
|
768
|
+
<span class="cline-any cline-neutral"> </span>
|
|
769
|
+
<span class="cline-any cline-yes">4x</span>
|
|
770
|
+
<span class="cline-any cline-yes">4x</span>
|
|
771
|
+
<span class="cline-any cline-no"> </span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-yes">4x</span>
|
|
775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-yes">34x</span>
|
|
696
778
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
697
779
|
const csvParser = require("../../../utilities/csvParser")
|
|
698
780
|
const {
|
|
@@ -703,7 +785,7 @@ const {
|
|
|
703
785
|
const { isEqual } = require("lodash/fp")
|
|
704
786
|
const { AutoFieldSubTypes, FieldTypes } = require("../../../constants")
|
|
705
787
|
const { inputProcessing } = require("../../../utilities/rowProcessor")
|
|
706
|
-
const { USERS_TABLE_SCHEMA } = require("../../../constants")
|
|
788
|
+
const { USERS_TABLE_SCHEMA, SwitchableTypes } = require("../../../constants")
|
|
707
789
|
const {
|
|
708
790
|
isExternalTable,
|
|
709
791
|
breakExternalTableId,
|
|
@@ -729,10 +811,10 @@ exports.checkForColumnUpdates = async (db, oldTable, updatedTable) => {
|
|
|
729
811
|
})
|
|
730
812
|
)
|
|
731
813
|
updatedRows = rows.rows.map(({ doc }) => {
|
|
732
|
-
|
|
814
|
+
if (rename) {
|
|
733
815
|
doc[rename.updated] = doc[rename.old]
|
|
734
816
|
delete doc[rename.old]
|
|
735
|
-
} else <span class="cstat-no" title="statement not covered" >if (deletedColumns.length !== 0) {</span>
|
|
817
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (deletedColumns.length !== 0) {</span>
|
|
736
818
|
<span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName => <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
|
|
737
819
|
}
|
|
738
820
|
return doc
|
|
@@ -767,43 +849,47 @@ exports.makeSureTableUpToDate = (table, tableToSave) => {
|
|
|
767
849
|
}
|
|
768
850
|
|
|
769
851
|
exports.handleDataImport = async (appId, user, table, dataImport) => {
|
|
852
|
+
if (!dataImport || !dataImport.csvString) {
|
|
853
|
+
return table
|
|
854
|
+
}
|
|
770
855
|
const db = new CouchDB(appId)
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
856
|
+
// Populate the table with rows imported from CSV in a bulk update
|
|
857
|
+
const data = await csvParser.transform({
|
|
858
|
+
...dataImport,
|
|
859
|
+
existingTable: table,
|
|
860
|
+
})
|
|
774
861
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
862
|
+
let finalData = []
|
|
863
|
+
for (let i = 0; i < data.length; i++) {
|
|
864
|
+
let row = data[i]
|
|
865
|
+
row._id = generateRowID(table._id)
|
|
866
|
+
row.tableId = table._id
|
|
867
|
+
const processed = inputProcessing(user, table, row, {
|
|
868
|
+
noAutoRelationships: true,
|
|
869
|
+
})
|
|
870
|
+
table = processed.table
|
|
871
|
+
row = processed.row
|
|
785
872
|
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
<span class="branch-2 cbranch-no" title="branch not covered" >
|
|
792
|
-
|
|
793
|
-
<span class="cstat-no" title="statement not covered" >
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
}
|
|
873
|
+
for (let [fieldName, schema] of Object.entries(table.schema)) {
|
|
874
|
+
// check whether the options need to be updated for inclusion as part of the data import
|
|
875
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
876
|
+
schema.type === FieldTypes.OPTIONS &&
|
|
877
|
+
(<span class="branch-1 cbranch-no" title="branch not covered" >!schema.constraints.inclusion </span>||
|
|
878
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > schema.constraints.inclusion.indexOf(row[fieldName]) === -1)</span>
|
|
879
|
+
) {
|
|
880
|
+
<span class="cstat-no" title="statement not covered" > schema.constraints.inclusion = [</span>
|
|
881
|
+
...schema.constraints.inclusion,
|
|
882
|
+
row[fieldName],
|
|
883
|
+
]
|
|
798
884
|
}
|
|
799
|
-
|
|
800
|
-
finalData.push(row)
|
|
801
885
|
}
|
|
802
886
|
|
|
803
|
-
|
|
804
|
-
let response = await db.put(table)
|
|
805
|
-
table._rev = response._rev
|
|
887
|
+
finalData.push(row)
|
|
806
888
|
}
|
|
889
|
+
|
|
890
|
+
await db.bulkDocs(finalData)
|
|
891
|
+
let response = await db.put(table)
|
|
892
|
+
table._rev = response._rev
|
|
807
893
|
return table
|
|
808
894
|
}
|
|
809
895
|
|
|
@@ -824,7 +910,7 @@ exports.handleSearchIndexes = async (appId, table) => {
|
|
|
824
910
|
)
|
|
825
911
|
|
|
826
912
|
// if index fields have changed, delete the original index
|
|
827
|
-
|
|
913
|
+
if (!isEqual(currentFields, table.indexes)) {
|
|
828
914
|
await db.deleteIndex(existingIndex)
|
|
829
915
|
// create/recreate the index with fields
|
|
830
916
|
await db.createIndex({
|
|
@@ -856,7 +942,7 @@ exports.checkStaticTables = table => {
|
|
|
856
942
|
if (table._id === InternalTables.USER_METADATA) {
|
|
857
943
|
for (let [key, schema] of Object.entries(USERS_TABLE_SCHEMA.schema)) {
|
|
858
944
|
// check if the schema exists on the table to be created/updated
|
|
859
|
-
|
|
945
|
+
if (table.schema[key] == null) {
|
|
860
946
|
table.schema[key] = schema
|
|
861
947
|
}
|
|
862
948
|
}
|
|
@@ -868,7 +954,7 @@ class TableSaveFunctions {
|
|
|
868
954
|
constructor({ db, ctx, oldTable, dataImport }) {
|
|
869
955
|
this.db = db
|
|
870
956
|
this.ctx = ctx
|
|
871
|
-
|
|
957
|
+
if (this.ctx && this.ctx.user) {
|
|
872
958
|
this.appId = this.ctx.appId
|
|
873
959
|
}
|
|
874
960
|
this.oldTable = oldTable
|
|
@@ -1010,6 +1096,43 @@ exports.checkForViewUpdates = async (db, table, rename, deletedColumns) => {
|
|
|
1010
1096
|
}
|
|
1011
1097
|
}
|
|
1012
1098
|
|
|
1099
|
+
exports.generateForeignKey = <span class="fstat-no" title="function not covered" >(c</span>olumn, relatedTable) => {
|
|
1100
|
+
<span class="cstat-no" title="statement not covered" > return `fk_${relatedTable.name}_${column.fieldName}`</span>
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
exports.generateJunctionTableName = <span class="fstat-no" title="function not covered" >(c</span>olumn, table, relatedTable) => {
|
|
1104
|
+
<span class="cstat-no" title="statement not covered" > return `jt_${table.name}_${relatedTable.name}_${column.name}_${column.fieldName}`</span>
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
exports.foreignKeyStructure = <span class="fstat-no" title="function not covered" >(k</span>eyName, meta = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> => {
|
|
1108
|
+
const structure = <span class="cstat-no" title="statement not covered" >{</span>
|
|
1109
|
+
type: FieldTypes.NUMBER,
|
|
1110
|
+
constraints: {},
|
|
1111
|
+
name: keyName,
|
|
1112
|
+
}
|
|
1113
|
+
<span class="cstat-no" title="statement not covered" > if (meta) {</span>
|
|
1114
|
+
<span class="cstat-no" title="statement not covered" > structure.meta = meta</span>
|
|
1115
|
+
}
|
|
1116
|
+
<span class="cstat-no" title="statement not covered" > return structure</span>
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
exports.hasTypeChanged = (table, oldTable) => {
|
|
1120
|
+
if (!oldTable) {
|
|
1121
|
+
return false
|
|
1122
|
+
}
|
|
1123
|
+
for (let [key, field] of Object.entries(oldTable.schema)) {
|
|
1124
|
+
const oldType = field.type
|
|
1125
|
+
if (!table.schema[key]) {
|
|
1126
|
+
continue
|
|
1127
|
+
}
|
|
1128
|
+
const newType = table.schema[key].type
|
|
1129
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (oldType !== newType && <span class="branch-1 cbranch-no" title="branch not covered" >SwitchableTypes.indexOf(oldType) === -1)</span> {
|
|
1130
|
+
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
return false
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1013
1136
|
exports.TableSaveFunctions = TableSaveFunctions
|
|
1014
1137
|
</pre></td></tr></table></pre>
|
|
1015
1138
|
|
|
@@ -1018,7 +1141,7 @@ exports.TableSaveFunctions = TableSaveFunctions
|
|
|
1018
1141
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1019
1142
|
Code coverage generated by
|
|
1020
1143
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1021
|
-
at Thu Nov
|
|
1144
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
1022
1145
|
</div>
|
|
1023
1146
|
</div>
|
|
1024
1147
|
<script src="../../../prettify.js"></script>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">71.
|
|
33
|
+
<span class="strong">71.42% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>5/7</span>
|
|
36
36
|
</div>
|
|
@@ -155,10 +155,10 @@ exports.fetch = async function (ctx) {
|
|
|
155
155
|
<span class="cstat-no" title="statement not covered" > error = true</span>
|
|
156
156
|
}
|
|
157
157
|
// if there is an error, simply return no templates
|
|
158
|
-
|
|
158
|
+
if (!error && response) {
|
|
159
159
|
const json = await response.json()
|
|
160
160
|
ctx.body = Object.values(json.templates[type])
|
|
161
|
-
} else {
|
|
161
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
162
162
|
<span class="cstat-no" title="statement not covered" > ctx.body = []</span>
|
|
163
163
|
}
|
|
164
164
|
}
|
|
@@ -181,7 +181,7 @@ exports.downloadTemplate = async function (ctx) {
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at Thu Nov
|
|
184
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|