@budibase/server 1.2.58 → 1.2.59-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__/mongodb.ts +4 -0
- package/__mocks__/node-fetch.ts +8 -1
- package/builder/assets/index.48098778.js +875 -0
- package/builder/assets/index.e50bda9f.css +6 -0
- package/builder/assets/{vendor.6bcafa60.js → vendor.67dbd8fa.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +549 -524
- package/coverage/coverage-final.json +20 -20
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +25 -25
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +317 -191
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +27 -18
- 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 +2 -2
- 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 +19 -19
- 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 +1 -1
- package/coverage/lcov-report/api/index.js.html +5 -5
- 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 +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 +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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +9 -6
- package/coverage/lcov-report/automations/index.html +11 -11
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +30 -30
- 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 +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 +4 -4
- package/coverage/lcov-report/db/utils.js.html +73 -73
- 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 +33 -33
- 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 +10 -10
- package/coverage/lcov-report/middleware/joi-validator.js.html +18 -9
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +12 -12
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- 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 +31 -31
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +24 -24
- 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 +20 -20
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +7 -7
- package/coverage/lcov-report/utilities/workerRequests.js.html +13 -13
- package/coverage/lcov.info +888 -844
- package/dist/api/controllers/application.js +80 -14
- package/dist/api/controllers/row/internalSearch.js +39 -4
- package/dist/api/controllers/row/utils.js +3 -1
- package/dist/api/controllers/static/index.js +26 -2
- package/dist/api/controllers/static/templates/preview.hbs +103 -0
- package/dist/api/controllers/table/external.js +1 -1
- package/dist/api/routes/static.js +3 -0
- package/dist/app.js +4 -3
- package/dist/automations/bullboard.js +1 -0
- package/dist/automations/logging/index.js +3 -0
- package/dist/integrations/base/query.js +27 -0
- package/dist/integrations/base/sql.js +62 -30
- package/dist/integrations/base/utils.js +13 -27
- package/dist/integrations/microsoftSqlServer.js +5 -2
- package/dist/integrations/mongodb.js +35 -8
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/postgres.js +5 -2
- package/dist/middleware/joi-validator.js +7 -4
- package/dist/package.json +7 -7
- package/dist/threads/index.js +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +2 -1
- package/dist/utilities/redis.js +1 -0
- package/package.json +8 -8
- package/src/api/controllers/application.ts +96 -15
- package/src/api/controllers/row/internalSearch.js +45 -3
- package/src/api/controllers/row/utils.js +4 -1
- package/src/api/controllers/static/index.ts +21 -1
- package/src/api/controllers/static/templates/preview.hbs +103 -0
- package/src/api/controllers/table/external.js +1 -1
- package/src/api/routes/static.ts +12 -0
- package/src/api/routes/tests/application.spec.js +26 -0
- package/src/api/routes/tests/data/old-app.txt +3 -0
- package/src/api/routes/tests/internalSearch.spec.js +176 -0
- package/src/api/routes/tests/static.spec.js +19 -7
- package/src/app.ts +5 -3
- package/src/automations/bullboard.js +1 -0
- package/src/automations/logging/index.ts +3 -0
- package/src/integrations/base/query.ts +16 -0
- package/src/integrations/base/sql.ts +67 -30
- package/src/integrations/base/utils.ts +9 -18
- package/src/integrations/microsoftSqlServer.ts +3 -2
- package/src/integrations/mongodb.ts +35 -8
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/postgres.ts +2 -1
- package/src/integrations/tests/mongo.spec.js +218 -0
- package/src/integrations/tests/sql.spec.js +101 -11
- package/src/middleware/joi-validator.js +7 -4
- package/src/threads/index.ts +1 -0
- package/src/utilities/fileSystem/index.js +2 -0
- package/src/utilities/redis.js +1 -0
- package/builder/assets/index.08dd0c5e.css +0 -6
- package/builder/assets/index.5cf58e77.js +0 -975
|
@@ -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">79.14% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>167/211</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">68.75% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>88/128</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">68.29% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>28/41</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">78.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>162/206</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -523,10 +523,53 @@
|
|
|
523
523
|
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
524
|
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
525
|
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
-
<a name='L461'></a><a href='#L461'>461</a
|
|
527
|
-
<
|
|
528
|
-
<
|
|
529
|
-
<
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
|
|
569
|
+
<span class="cline-any cline-yes">45x</span>
|
|
570
|
+
<span class="cline-any cline-yes">45x</span>
|
|
571
|
+
<span class="cline-any cline-yes">45x</span>
|
|
572
|
+
<span class="cline-any cline-yes">45x</span>
|
|
530
573
|
<span class="cline-any cline-neutral"> </span>
|
|
531
574
|
<span class="cline-any cline-neutral"> </span>
|
|
532
575
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -534,7 +577,7 @@
|
|
|
534
577
|
<span class="cline-any cline-neutral"> </span>
|
|
535
578
|
<span class="cline-any cline-neutral"> </span>
|
|
536
579
|
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-yes">
|
|
580
|
+
<span class="cline-any cline-yes">16x</span>
|
|
538
581
|
<span class="cline-any cline-neutral"> </span>
|
|
539
582
|
<span class="cline-any cline-neutral"> </span>
|
|
540
583
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -547,54 +590,56 @@
|
|
|
547
590
|
<span class="cline-any cline-neutral"> </span>
|
|
548
591
|
<span class="cline-any cline-neutral"> </span>
|
|
549
592
|
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">1x</span>
|
|
551
|
-
<span class="cline-any cline-yes">1x</span>
|
|
552
|
-
<span class="cline-any cline-yes">1x</span>
|
|
553
|
-
<span class="cline-any cline-yes">1x</span>
|
|
554
|
-
<span class="cline-any cline-yes">1x</span>
|
|
555
593
|
<span class="cline-any cline-neutral"> </span>
|
|
556
594
|
<span class="cline-any cline-neutral"> </span>
|
|
595
|
+
<span class="cline-any cline-yes">16x</span>
|
|
596
|
+
<span class="cline-any cline-yes">16x</span>
|
|
597
|
+
<span class="cline-any cline-yes">16x</span>
|
|
598
|
+
<span class="cline-any cline-yes">16x</span>
|
|
599
|
+
<span class="cline-any cline-yes">16x</span>
|
|
557
600
|
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-yes">1x</span>
|
|
559
|
-
<span class="cline-any cline-yes">1x</span>
|
|
560
601
|
<span class="cline-any cline-neutral"> </span>
|
|
561
602
|
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-yes">16x</span>
|
|
604
|
+
<span class="cline-any cline-yes">16x</span>
|
|
562
605
|
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-yes">1x</span>
|
|
564
|
-
<span class="cline-any cline-yes">1x</span>
|
|
565
606
|
<span class="cline-any cline-neutral"> </span>
|
|
566
607
|
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-yes">31x</span>
|
|
609
|
+
<span class="cline-any cline-yes">31x</span>
|
|
567
610
|
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-yes">1x</span>
|
|
569
|
-
<span class="cline-any cline-yes">1x</span>
|
|
570
611
|
<span class="cline-any cline-neutral"> </span>
|
|
571
|
-
<span class="cline-any cline-yes">1x</span>
|
|
572
612
|
<span class="cline-any cline-neutral"> </span>
|
|
613
|
+
<span class="cline-any cline-yes">31x</span>
|
|
614
|
+
<span class="cline-any cline-yes">31x</span>
|
|
573
615
|
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-yes">31x</span>
|
|
574
617
|
<span class="cline-any cline-neutral"> </span>
|
|
575
|
-
<span class="cline-any cline-yes">1x</span>
|
|
576
|
-
<span class="cline-any cline-no"> </span>
|
|
577
618
|
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
620
|
+
<span class="cline-any cline-yes">16x</span>
|
|
578
621
|
<span class="cline-any cline-yes">1x</span>
|
|
579
622
|
<span class="cline-any cline-neutral"> </span>
|
|
623
|
+
<span class="cline-any cline-yes">16x</span>
|
|
580
624
|
<span class="cline-any cline-neutral"> </span>
|
|
581
625
|
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-yes">1x</span>
|
|
583
|
-
<span class="cline-any cline-no"> </span>
|
|
584
626
|
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-yes">
|
|
627
|
+
<span class="cline-any cline-yes">16x</span>
|
|
628
|
+
<span class="cline-any cline-yes">15x</span>
|
|
586
629
|
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-yes">16x</span>
|
|
587
631
|
<span class="cline-any cline-neutral"> </span>
|
|
588
632
|
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-yes">1x</span>
|
|
590
|
-
<span class="cline-any cline-no"> </span>
|
|
591
633
|
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-yes">
|
|
634
|
+
<span class="cline-any cline-yes">16x</span>
|
|
635
|
+
<span class="cline-any cline-yes">15x</span>
|
|
593
636
|
<span class="cline-any cline-neutral"> </span>
|
|
637
|
+
<span class="cline-any cline-yes">16x</span>
|
|
594
638
|
<span class="cline-any cline-neutral"> </span>
|
|
595
639
|
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-
|
|
597
|
-
<span class="cline-any cline-yes">
|
|
640
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
|
+
<span class="cline-any cline-yes">31x</span>
|
|
642
|
+
<span class="cline-any cline-yes">31x</span>
|
|
598
643
|
<span class="cline-any cline-neutral"> </span>
|
|
599
644
|
<span class="cline-any cline-neutral"> </span>
|
|
600
645
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -651,122 +696,152 @@
|
|
|
651
696
|
<span class="cline-any cline-neutral"> </span>
|
|
652
697
|
<span class="cline-any cline-neutral"> </span>
|
|
653
698
|
<span class="cline-any cline-neutral"> </span>
|
|
699
|
+
<span class="cline-any cline-no"> </span>
|
|
700
|
+
<span class="cline-any cline-no"> </span>
|
|
654
701
|
<span class="cline-any cline-neutral"> </span>
|
|
655
702
|
<span class="cline-any cline-neutral"> </span>
|
|
656
703
|
<span class="cline-any cline-neutral"> </span>
|
|
704
|
+
<span class="cline-any cline-no"> </span>
|
|
705
|
+
<span class="cline-any cline-no"> </span>
|
|
657
706
|
<span class="cline-any cline-neutral"> </span>
|
|
658
707
|
<span class="cline-any cline-neutral"> </span>
|
|
659
708
|
<span class="cline-any cline-neutral"> </span>
|
|
660
709
|
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-yes">2x</span>
|
|
662
710
|
<span class="cline-any cline-neutral"> </span>
|
|
663
|
-
<span class="cline-any cline-yes">2x</span>
|
|
664
711
|
<span class="cline-any cline-neutral"> </span>
|
|
665
|
-
<span class="cline-any cline-yes">2x</span>
|
|
666
|
-
<span class="cline-any cline-yes">1x</span>
|
|
667
712
|
<span class="cline-any cline-neutral"> </span>
|
|
668
713
|
<span class="cline-any cline-neutral"> </span>
|
|
669
|
-
<span class="cline-any cline-yes">2x</span>
|
|
670
|
-
<span class="cline-any cline-yes">2x</span>
|
|
671
714
|
<span class="cline-any cline-neutral"> </span>
|
|
672
715
|
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-yes">
|
|
674
|
-
<span class="cline-any cline-no"> </span>
|
|
716
|
+
<span class="cline-any cline-yes">148x</span>
|
|
675
717
|
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-yes">
|
|
718
|
+
<span class="cline-any cline-yes">148x</span>
|
|
677
719
|
<span class="cline-any cline-neutral"> </span>
|
|
720
|
+
<span class="cline-any cline-yes">148x</span>
|
|
721
|
+
<span class="cline-any cline-yes">61x</span>
|
|
678
722
|
<span class="cline-any cline-neutral"> </span>
|
|
679
723
|
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-yes">
|
|
681
|
-
<span class="cline-any cline-yes">
|
|
682
|
-
<span class="cline-any cline-yes">1x</span>
|
|
683
|
-
<span class="cline-any cline-yes">1x</span>
|
|
724
|
+
<span class="cline-any cline-yes">148x</span>
|
|
725
|
+
<span class="cline-any cline-yes">138x</span>
|
|
684
726
|
<span class="cline-any cline-neutral"> </span>
|
|
685
|
-
<span class="cline-any cline-yes">1x</span>
|
|
686
|
-
<span class="cline-any cline-yes">1x</span>
|
|
687
|
-
<span class="cline-any cline-yes">1x</span>
|
|
688
727
|
<span class="cline-any cline-neutral"> </span>
|
|
728
|
+
<span class="cline-any cline-yes">148x</span>
|
|
729
|
+
<span class="cline-any cline-yes">58x</span>
|
|
689
730
|
<span class="cline-any cline-neutral"> </span>
|
|
690
|
-
<span class="cline-any cline-yes">
|
|
731
|
+
<span class="cline-any cline-yes">148x</span>
|
|
691
732
|
<span class="cline-any cline-neutral"> </span>
|
|
692
|
-
<span class="cline-any cline-yes">1x</span>
|
|
693
|
-
<span class="cline-any cline-no"> </span>
|
|
694
733
|
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-yes">1x</span>
|
|
696
734
|
<span class="cline-any cline-neutral"> </span>
|
|
735
|
+
<span class="cline-any cline-yes">31x</span>
|
|
736
|
+
<span class="cline-any cline-yes">31x</span>
|
|
737
|
+
<span class="cline-any cline-yes">31x</span>
|
|
738
|
+
<span class="cline-any cline-yes">31x</span>
|
|
697
739
|
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-yes">
|
|
699
|
-
<span class="cline-any cline-
|
|
700
|
-
<span class="cline-any cline-
|
|
740
|
+
<span class="cline-any cline-yes">31x</span>
|
|
741
|
+
<span class="cline-any cline-yes">31x</span>
|
|
742
|
+
<span class="cline-any cline-yes">31x</span>
|
|
701
743
|
<span class="cline-any cline-neutral"> </span>
|
|
702
|
-
<span class="cline-any cline-no"> </span>
|
|
703
744
|
<span class="cline-any cline-neutral"> </span>
|
|
745
|
+
<span class="cline-any cline-yes">31x</span>
|
|
704
746
|
<span class="cline-any cline-neutral"> </span>
|
|
705
|
-
<span class="cline-any cline-yes">
|
|
706
|
-
<span class="cline-any cline-no"> </span>
|
|
707
|
-
<span class="cline-any cline-no"> </span>
|
|
747
|
+
<span class="cline-any cline-yes">45x</span>
|
|
708
748
|
<span class="cline-any cline-no"> </span>
|
|
709
749
|
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-yes">45x</span>
|
|
751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
753
|
+
<span class="cline-any cline-yes">31x</span>
|
|
754
|
+
<span class="cline-any cline-yes">8x</span>
|
|
710
755
|
<span class="cline-any cline-no"> </span>
|
|
711
756
|
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-yes">8x</span>
|
|
758
|
+
<span class="cline-any cline-yes">2x</span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
760
|
+
<span class="cline-any cline-yes">6x</span>
|
|
761
|
+
<span class="cline-any cline-yes">6x</span>
|
|
762
|
+
<span class="cline-any cline-yes">12x</span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
|
+
<span class="cline-any cline-yes">6x</span>
|
|
767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
768
|
+
<span class="cline-any cline-neutral"> </span>
|
|
769
|
+
<span class="cline-any cline-yes">31x</span>
|
|
770
|
+
<span class="cline-any cline-yes">2x</span>
|
|
771
|
+
<span class="cline-any cline-yes">2x</span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-yes">31x</span>
|
|
775
|
+
<span class="cline-any cline-yes">2x</span>
|
|
776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
712
777
|
<span class="cline-any cline-neutral"> </span>
|
|
778
|
+
<span class="cline-any cline-yes">31x</span>
|
|
779
|
+
<span class="cline-any cline-yes">2x</span>
|
|
713
780
|
<span class="cline-any cline-no"> </span>
|
|
714
781
|
<span class="cline-any cline-no"> </span>
|
|
782
|
+
<span class="cline-any cline-neutral"> </span>
|
|
715
783
|
<span class="cline-any cline-no"> </span>
|
|
716
784
|
<span class="cline-any cline-neutral"> </span>
|
|
717
785
|
<span class="cline-any cline-neutral"> </span>
|
|
786
|
+
<span class="cline-any cline-yes">2x</span>
|
|
787
|
+
<span class="cline-any cline-yes">2x</span>
|
|
788
|
+
<span class="cline-any cline-yes">2x</span>
|
|
718
789
|
<span class="cline-any cline-neutral"> </span>
|
|
719
790
|
<span class="cline-any cline-neutral"> </span>
|
|
720
|
-
<span class="cline-any cline-no"> </span>
|
|
721
791
|
<span class="cline-any cline-neutral"> </span>
|
|
722
792
|
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-yes">2x</span>
|
|
723
794
|
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-yes">10x</span>
|
|
725
|
-
<span class="cline-any cline-yes">1x</span>
|
|
726
795
|
<span class="cline-any cline-neutral"> </span>
|
|
727
796
|
<span class="cline-any cline-neutral"> </span>
|
|
728
|
-
<span class="cline-any cline-yes">
|
|
729
|
-
<span class="cline-any cline-
|
|
797
|
+
<span class="cline-any cline-yes">372x</span>
|
|
798
|
+
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-yes">69x</span>
|
|
800
|
+
<span class="cline-any cline-yes">69x</span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-yes">69x</span>
|
|
804
|
+
<span class="cline-any cline-yes">69x</span>
|
|
730
805
|
<span class="cline-any cline-no"> </span>
|
|
731
806
|
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-yes">
|
|
733
|
-
<span class="cline-any cline-yes">
|
|
807
|
+
<span class="cline-any cline-yes">69x</span>
|
|
808
|
+
<span class="cline-any cline-yes">65x</span>
|
|
734
809
|
<span class="cline-any cline-neutral"> </span>
|
|
735
|
-
<span class="cline-any cline-yes">
|
|
810
|
+
<span class="cline-any cline-yes">69x</span>
|
|
736
811
|
<span class="cline-any cline-neutral"> </span>
|
|
737
812
|
<span class="cline-any cline-neutral"> </span>
|
|
738
813
|
<span class="cline-any cline-neutral"> </span>
|
|
739
814
|
<span class="cline-any cline-neutral"> </span>
|
|
740
|
-
<span class="cline-any cline-yes">
|
|
741
|
-
<span class="cline-any cline-yes">
|
|
742
|
-
<span class="cline-any cline-
|
|
815
|
+
<span class="cline-any cline-yes">31x</span>
|
|
816
|
+
<span class="cline-any cline-yes">31x</span>
|
|
817
|
+
<span class="cline-any cline-yes">2x</span>
|
|
743
818
|
<span class="cline-any cline-no"> </span>
|
|
744
819
|
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-
|
|
820
|
+
<span class="cline-any cline-yes">2x</span>
|
|
746
821
|
<span class="cline-any cline-neutral"> </span>
|
|
747
822
|
<span class="cline-any cline-neutral"> </span>
|
|
748
823
|
<span class="cline-any cline-neutral"> </span>
|
|
749
|
-
<span class="cline-any cline-
|
|
824
|
+
<span class="cline-any cline-yes">2x</span>
|
|
750
825
|
<span class="cline-any cline-neutral"> </span>
|
|
751
826
|
<span class="cline-any cline-neutral"> </span>
|
|
752
|
-
<span class="cline-any cline-yes">
|
|
753
|
-
<span class="cline-any cline-yes">
|
|
754
|
-
<span class="cline-any cline-
|
|
827
|
+
<span class="cline-any cline-yes">31x</span>
|
|
828
|
+
<span class="cline-any cline-yes">31x</span>
|
|
829
|
+
<span class="cline-any cline-yes">2x</span>
|
|
755
830
|
<span class="cline-any cline-no"> </span>
|
|
756
831
|
<span class="cline-any cline-neutral"> </span>
|
|
757
|
-
<span class="cline-any cline-
|
|
832
|
+
<span class="cline-any cline-yes">2x</span>
|
|
758
833
|
<span class="cline-any cline-no"> </span>
|
|
759
834
|
<span class="cline-any cline-neutral"> </span>
|
|
760
|
-
<span class="cline-any cline-
|
|
835
|
+
<span class="cline-any cline-yes">2x</span>
|
|
761
836
|
<span class="cline-any cline-no"> </span>
|
|
762
837
|
<span class="cline-any cline-neutral"> </span>
|
|
763
|
-
<span class="cline-any cline-
|
|
764
|
-
<span class="cline-any cline-
|
|
765
|
-
<span class="cline-any cline-
|
|
838
|
+
<span class="cline-any cline-yes">2x</span>
|
|
839
|
+
<span class="cline-any cline-yes">2x</span>
|
|
840
|
+
<span class="cline-any cline-yes">2x</span>
|
|
766
841
|
<span class="cline-any cline-neutral"> </span>
|
|
767
842
|
<span class="cline-any cline-neutral"> </span>
|
|
768
|
-
<span class="cline-any cline-yes">
|
|
769
|
-
<span class="cline-any cline-yes">
|
|
843
|
+
<span class="cline-any cline-yes">31x</span>
|
|
844
|
+
<span class="cline-any cline-yes">31x</span>
|
|
770
845
|
<span class="cline-any cline-no"> </span>
|
|
771
846
|
<span class="cline-any cline-no"> </span>
|
|
772
847
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -777,93 +852,100 @@
|
|
|
777
852
|
<span class="cline-any cline-no"> </span>
|
|
778
853
|
<span class="cline-any cline-neutral"> </span>
|
|
779
854
|
<span class="cline-any cline-neutral"> </span>
|
|
780
|
-
<span class="cline-any cline-yes">
|
|
781
|
-
<span class="cline-any cline-yes">
|
|
855
|
+
<span class="cline-any cline-yes">31x</span>
|
|
856
|
+
<span class="cline-any cline-yes">31x</span>
|
|
782
857
|
<span class="cline-any cline-neutral"> </span>
|
|
783
|
-
<span class="cline-any cline-yes">
|
|
784
|
-
<span class="cline-any cline-yes">
|
|
785
|
-
<span class="cline-any cline-
|
|
858
|
+
<span class="cline-any cline-yes">31x</span>
|
|
859
|
+
<span class="cline-any cline-yes">31x</span>
|
|
860
|
+
<span class="cline-any cline-yes">6x</span>
|
|
786
861
|
<span class="cline-any cline-no"> </span>
|
|
787
862
|
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-
|
|
863
|
+
<span class="cline-any cline-yes">6x</span>
|
|
789
864
|
<span class="cline-any cline-neutral"> </span>
|
|
790
865
|
<span class="cline-any cline-neutral"> </span>
|
|
791
|
-
<span class="cline-any cline-yes">
|
|
792
|
-
<span class="cline-any cline-yes">
|
|
866
|
+
<span class="cline-any cline-yes">31x</span>
|
|
867
|
+
<span class="cline-any cline-yes">31x</span>
|
|
793
868
|
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-yes">
|
|
795
|
-
<span class="cline-any cline-yes">
|
|
869
|
+
<span class="cline-any cline-yes">31x</span>
|
|
870
|
+
<span class="cline-any cline-yes">31x</span>
|
|
796
871
|
<span class="cline-any cline-neutral"> </span>
|
|
797
|
-
<span class="cline-any cline-yes">
|
|
798
|
-
<span class="cline-any cline-yes">
|
|
872
|
+
<span class="cline-any cline-yes">31x</span>
|
|
873
|
+
<span class="cline-any cline-yes">31x</span>
|
|
799
874
|
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-yes">
|
|
801
|
-
<span class="cline-any cline-yes">
|
|
875
|
+
<span class="cline-any cline-yes">31x</span>
|
|
876
|
+
<span class="cline-any cline-yes">31x</span>
|
|
802
877
|
<span class="cline-any cline-neutral"> </span>
|
|
878
|
+
<span class="cline-any cline-yes">31x</span>
|
|
879
|
+
<span class="cline-any cline-yes">31x</span>
|
|
803
880
|
<span class="cline-any cline-neutral"> </span>
|
|
804
|
-
<span class="cline-any cline-yes">
|
|
805
|
-
<span class="cline-any cline-yes">
|
|
806
|
-
<span class="cline-any cline-yes">1x</span>
|
|
807
|
-
<span class="cline-any cline-yes">1x</span>
|
|
881
|
+
<span class="cline-any cline-yes">31x</span>
|
|
882
|
+
<span class="cline-any cline-yes">31x</span>
|
|
808
883
|
<span class="cline-any cline-neutral"> </span>
|
|
809
|
-
<span class="cline-any cline-yes">1x</span>
|
|
810
884
|
<span class="cline-any cline-neutral"> </span>
|
|
885
|
+
<span class="cline-any cline-yes">31x</span>
|
|
886
|
+
<span class="cline-any cline-yes">31x</span>
|
|
887
|
+
<span class="cline-any cline-yes">31x</span>
|
|
888
|
+
<span class="cline-any cline-yes">31x</span>
|
|
811
889
|
<span class="cline-any cline-neutral"> </span>
|
|
890
|
+
<span class="cline-any cline-yes">31x</span>
|
|
812
891
|
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-yes">1x</span>
|
|
814
892
|
<span class="cline-any cline-neutral"> </span>
|
|
815
893
|
<span class="cline-any cline-neutral"> </span>
|
|
894
|
+
<span class="cline-any cline-yes">31x</span>
|
|
816
895
|
<span class="cline-any cline-neutral"> </span>
|
|
817
896
|
<span class="cline-any cline-neutral"> </span>
|
|
818
|
-
<span class="cline-any cline-yes">1x</span>
|
|
819
|
-
<span class="cline-any cline-no"> </span>
|
|
820
897
|
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-yes">1x</span>
|
|
822
|
-
<span class="cline-any cline-no"> </span>
|
|
823
|
-
<span class="cline-any cline-no"> </span>
|
|
824
|
-
<span class="cline-any cline-no"> </span>
|
|
825
898
|
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-yes">
|
|
899
|
+
<span class="cline-any cline-yes">31x</span>
|
|
900
|
+
<span class="cline-any cline-yes">16x</span>
|
|
827
901
|
<span class="cline-any cline-neutral"> </span>
|
|
902
|
+
<span class="cline-any cline-yes">31x</span>
|
|
903
|
+
<span class="cline-any cline-yes">2x</span>
|
|
904
|
+
<span class="cline-any cline-yes">2x</span>
|
|
905
|
+
<span class="cline-any cline-yes">2x</span>
|
|
828
906
|
<span class="cline-any cline-neutral"> </span>
|
|
907
|
+
<span class="cline-any cline-yes">31x</span>
|
|
829
908
|
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-yes">1x</span>
|
|
831
|
-
<span class="cline-any cline-yes">1x</span>
|
|
832
|
-
<span class="cline-any cline-yes">1x</span>
|
|
833
|
-
<span class="cline-any cline-yes">1x</span>
|
|
834
|
-
<span class="cline-any cline-yes">1x</span>
|
|
835
909
|
<span class="cline-any cline-neutral"> </span>
|
|
836
910
|
<span class="cline-any cline-neutral"> </span>
|
|
911
|
+
<span class="cline-any cline-yes">31x</span>
|
|
912
|
+
<span class="cline-any cline-yes">31x</span>
|
|
913
|
+
<span class="cline-any cline-yes">31x</span>
|
|
914
|
+
<span class="cline-any cline-yes">31x</span>
|
|
915
|
+
<span class="cline-any cline-yes">31x</span>
|
|
837
916
|
<span class="cline-any cline-neutral"> </span>
|
|
838
917
|
<span class="cline-any cline-neutral"> </span>
|
|
839
918
|
<span class="cline-any cline-neutral"> </span>
|
|
840
919
|
<span class="cline-any cline-neutral"> </span>
|
|
920
|
+
<span class="cline-any cline-yes">45x</span>
|
|
841
921
|
<span class="cline-any cline-neutral"> </span>
|
|
842
922
|
<span class="cline-any cline-neutral"> </span>
|
|
843
923
|
<span class="cline-any cline-neutral"> </span>
|
|
844
924
|
<span class="cline-any cline-neutral"> </span>
|
|
845
|
-
<span class="cline-any cline-yes">44x</span>
|
|
846
|
-
<span class="cline-any cline-yes">1x</span>
|
|
847
925
|
<span class="cline-any cline-neutral"> </span>
|
|
848
926
|
<span class="cline-any cline-neutral"> </span>
|
|
849
927
|
<span class="cline-any cline-neutral"> </span>
|
|
850
928
|
<span class="cline-any cline-neutral"> </span>
|
|
929
|
+
<span class="cline-any cline-yes">45x</span>
|
|
930
|
+
<span class="cline-any cline-yes">31x</span>
|
|
851
931
|
<span class="cline-any cline-neutral"> </span>
|
|
852
932
|
<span class="cline-any cline-neutral"> </span>
|
|
853
|
-
<span class="cline-any cline-yes">1x</span>
|
|
854
933
|
<span class="cline-any cline-neutral"> </span>
|
|
855
|
-
<span class="cline-any cline-yes">1x</span>
|
|
856
934
|
<span class="cline-any cline-neutral"> </span>
|
|
857
935
|
<span class="cline-any cline-neutral"> </span>
|
|
858
|
-
<span class="cline-any cline-yes">1x</span>
|
|
859
|
-
<span class="cline-any cline-yes">1x</span>
|
|
860
936
|
<span class="cline-any cline-neutral"> </span>
|
|
861
|
-
<span class="cline-any cline-yes">
|
|
862
|
-
<span class="cline-any cline-yes">1x</span>
|
|
937
|
+
<span class="cline-any cline-yes">31x</span>
|
|
863
938
|
<span class="cline-any cline-neutral"> </span>
|
|
864
|
-
<span class="cline-any cline-yes">
|
|
939
|
+
<span class="cline-any cline-yes">31x</span>
|
|
940
|
+
<span class="cline-any cline-neutral"> </span>
|
|
941
|
+
<span class="cline-any cline-neutral"> </span>
|
|
942
|
+
<span class="cline-any cline-yes">31x</span>
|
|
943
|
+
<span class="cline-any cline-yes">31x</span>
|
|
865
944
|
<span class="cline-any cline-neutral"> </span>
|
|
945
|
+
<span class="cline-any cline-yes">31x</span>
|
|
946
|
+
<span class="cline-any cline-yes">31x</span>
|
|
866
947
|
<span class="cline-any cline-neutral"> </span>
|
|
948
|
+
<span class="cline-any cline-yes">31x</span>
|
|
867
949
|
<span class="cline-any cline-neutral"> </span>
|
|
868
950
|
<span class="cline-any cline-neutral"> </span>
|
|
869
951
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -880,7 +962,9 @@
|
|
|
880
962
|
<span class="cline-any cline-neutral"> </span>
|
|
881
963
|
<span class="cline-any cline-neutral"> </span>
|
|
882
964
|
<span class="cline-any cline-neutral"> </span>
|
|
883
|
-
<span class="cline-any cline-
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-neutral"> </span>
|
|
967
|
+
<span class="cline-any cline-yes">45x</span>
|
|
884
968
|
<span class="cline-any cline-yes">1x</span>
|
|
885
969
|
<span class="cline-any cline-yes">1x</span>
|
|
886
970
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -928,32 +1012,32 @@
|
|
|
928
1012
|
<span class="cline-any cline-neutral"> </span>
|
|
929
1013
|
<span class="cline-any cline-neutral"> </span>
|
|
930
1014
|
<span class="cline-any cline-neutral"> </span>
|
|
931
|
-
<span class="cline-any cline-yes">
|
|
932
|
-
<span class="cline-any cline-
|
|
933
|
-
<span class="cline-any cline-
|
|
934
|
-
<span class="cline-any cline-
|
|
1015
|
+
<span class="cline-any cline-yes">45x</span>
|
|
1016
|
+
<span class="cline-any cline-yes">15x</span>
|
|
1017
|
+
<span class="cline-any cline-yes">15x</span>
|
|
1018
|
+
<span class="cline-any cline-yes">14x</span>
|
|
935
1019
|
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-
|
|
937
|
-
<span class="cline-any cline-
|
|
1020
|
+
<span class="cline-any cline-yes">15x</span>
|
|
1021
|
+
<span class="cline-any cline-yes">15x</span>
|
|
938
1022
|
<span class="cline-any cline-neutral"> </span>
|
|
939
1023
|
<span class="cline-any cline-neutral"> </span>
|
|
940
1024
|
<span class="cline-any cline-neutral"> </span>
|
|
941
1025
|
<span class="cline-any cline-neutral"> </span>
|
|
942
1026
|
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-
|
|
1027
|
+
<span class="cline-any cline-yes">15x</span>
|
|
944
1028
|
<span class="cline-any cline-neutral"> </span>
|
|
945
1029
|
<span class="cline-any cline-neutral"> </span>
|
|
946
1030
|
<span class="cline-any cline-neutral"> </span>
|
|
947
1031
|
<span class="cline-any cline-neutral"> </span>
|
|
948
1032
|
<span class="cline-any cline-neutral"> </span>
|
|
949
1033
|
<span class="cline-any cline-neutral"> </span>
|
|
950
|
-
<span class="cline-any cline-
|
|
1034
|
+
<span class="cline-any cline-yes">15x</span>
|
|
951
1035
|
<span class="cline-any cline-neutral"> </span>
|
|
952
1036
|
<span class="cline-any cline-neutral"> </span>
|
|
953
1037
|
<span class="cline-any cline-neutral"> </span>
|
|
954
1038
|
<span class="cline-any cline-neutral"> </span>
|
|
955
1039
|
<span class="cline-any cline-neutral"> </span>
|
|
956
|
-
<span class="cline-any cline-
|
|
1040
|
+
<span class="cline-any cline-yes">15x</span>
|
|
957
1041
|
<span class="cline-any cline-neutral"> </span>
|
|
958
1042
|
<span class="cline-any cline-neutral"> </span>
|
|
959
1043
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -974,7 +1058,7 @@
|
|
|
974
1058
|
<span class="cline-any cline-neutral"> </span>
|
|
975
1059
|
<span class="cline-any cline-neutral"> </span>
|
|
976
1060
|
<span class="cline-any cline-neutral"> </span>
|
|
977
|
-
<span class="cline-any cline-yes">
|
|
1061
|
+
<span class="cline-any cline-yes">45x</span>
|
|
978
1062
|
<span class="cline-any cline-yes">1x</span>
|
|
979
1063
|
<span class="cline-any cline-yes">1x</span>
|
|
980
1064
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -984,6 +1068,7 @@
|
|
|
984
1068
|
<span class="cline-any cline-yes">1x</span>
|
|
985
1069
|
<span class="cline-any cline-neutral"> </span>
|
|
986
1070
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
|
|
1071
|
+
const { removeKeyNumbering } = require("./utils")
|
|
987
1072
|
const fetch = require("node-fetch")
|
|
988
1073
|
const { getCouchInfo } = require("@budibase/backend-core/db")
|
|
989
1074
|
const { getAppId } = require("@budibase/backend-core/context")
|
|
@@ -1005,6 +1090,8 @@ class QueryBuilder {
|
|
|
1005
1090
|
notEmpty: {},
|
|
1006
1091
|
oneOf: {},
|
|
1007
1092
|
contains: {},
|
|
1093
|
+
notContains: {},
|
|
1094
|
+
containsAny: {},
|
|
1008
1095
|
...base,
|
|
1009
1096
|
}
|
|
1010
1097
|
this.limit = 50
|
|
@@ -1032,22 +1119,22 @@ class QueryBuilder {
|
|
|
1032
1119
|
}
|
|
1033
1120
|
|
|
1034
1121
|
setSort(sort) {
|
|
1035
|
-
|
|
1036
|
-
|
|
1122
|
+
if (sort != null) {
|
|
1123
|
+
this.sort = sort
|
|
1037
1124
|
}
|
|
1038
1125
|
return this
|
|
1039
1126
|
}
|
|
1040
1127
|
|
|
1041
1128
|
setSortOrder(sortOrder) {
|
|
1042
|
-
|
|
1043
|
-
|
|
1129
|
+
if (sortOrder != null) {
|
|
1130
|
+
this.sortOrder = sortOrder
|
|
1044
1131
|
}
|
|
1045
1132
|
return this
|
|
1046
1133
|
}
|
|
1047
1134
|
|
|
1048
1135
|
setSortType(sortType) {
|
|
1049
|
-
|
|
1050
|
-
|
|
1136
|
+
if (sortType != null) {
|
|
1137
|
+
this.sortType = sortType
|
|
1051
1138
|
}
|
|
1052
1139
|
return this
|
|
1053
1140
|
}
|
|
@@ -1107,6 +1194,16 @@ class QueryBuilder {
|
|
|
1107
1194
|
|
|
1108
1195
|
<span class="fstat-no" title="function not covered" > ad</span>dContains(key, value) {
|
|
1109
1196
|
<span class="cstat-no" title="statement not covered" > this.query.contains[key] = value</span>
|
|
1197
|
+
<span class="cstat-no" title="statement not covered" > return this</span>
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
<span class="fstat-no" title="function not covered" > ad</span>dNotContains(key, value) {
|
|
1201
|
+
<span class="cstat-no" title="statement not covered" > this.query.notContains[key] = value</span>
|
|
1202
|
+
<span class="cstat-no" title="statement not covered" > return this</span>
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
<span class="fstat-no" title="function not covered" > ad</span>dContainsAny(key, value) {
|
|
1206
|
+
<span class="cstat-no" title="statement not covered" > this.query.containsAny[key] = value</span>
|
|
1110
1207
|
<span class="cstat-no" title="statement not covered" > return this</span>
|
|
1111
1208
|
}
|
|
1112
1209
|
|
|
@@ -1123,15 +1220,15 @@ class QueryBuilder {
|
|
|
1123
1220
|
const originalType = typeof value
|
|
1124
1221
|
// Convert to lowercase
|
|
1125
1222
|
if (value && lowercase) {
|
|
1126
|
-
value = value.toLowerCase ? value.toLowerCase() :
|
|
1223
|
+
value = value.toLowerCase ? value.toLowerCase() : value
|
|
1127
1224
|
}
|
|
1128
1225
|
// Escape characters
|
|
1129
|
-
|
|
1226
|
+
if (escape && originalType === "string") {
|
|
1130
1227
|
value = `${value}`.replace(/[ #+\-&|!(){}\]^"~*?:\\]/g, "\\$&")
|
|
1131
1228
|
}
|
|
1132
1229
|
// Wrap in quotes
|
|
1133
|
-
|
|
1134
|
-
|
|
1230
|
+
if (hasVersion && wrap) {
|
|
1231
|
+
value = originalType === "number" ? value : `"${value}"`
|
|
1135
1232
|
}
|
|
1136
1233
|
return value
|
|
1137
1234
|
}
|
|
@@ -1139,7 +1236,7 @@ class QueryBuilder {
|
|
|
1139
1236
|
buildSearchQuery() {
|
|
1140
1237
|
const builder = this
|
|
1141
1238
|
let allOr = this.query && this.query.allOr
|
|
1142
|
-
let query = allOr ?
|
|
1239
|
+
let query = allOr ? "" : "*:*"
|
|
1143
1240
|
const allPreProcessingOpts = { escape: true, lowercase: true, wrap: true }
|
|
1144
1241
|
let tableId
|
|
1145
1242
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.equal.tableId) {
|
|
@@ -1155,33 +1252,53 @@ class QueryBuilder {
|
|
|
1155
1252
|
return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`
|
|
1156
1253
|
}
|
|
1157
1254
|
|
|
1158
|
-
const contains =
|
|
1159
|
-
<span class="
|
|
1255
|
+
const contains = (key, value, mode = "AND") => {
|
|
1256
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(value) && value.length === 0) {
|
|
1160
1257
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1161
1258
|
}
|
|
1162
|
-
|
|
1259
|
+
if (!Array.isArray(value)) {
|
|
1260
|
+
return `${key}:${value}`
|
|
1261
|
+
}
|
|
1262
|
+
let statement = `${builder.preprocess(value[0], { escape: true })}`
|
|
1263
|
+
for (let i = 1; i < value.length; i++) {
|
|
1264
|
+
statement += ` ${mode} ${builder.preprocess(value[i], {
|
|
1265
|
+
escape: true,
|
|
1266
|
+
})}`
|
|
1267
|
+
}
|
|
1268
|
+
return `${key}:(${statement})`
|
|
1163
1269
|
}
|
|
1164
1270
|
|
|
1165
|
-
const
|
|
1166
|
-
<span class="
|
|
1271
|
+
const notContains = (key, value) => {
|
|
1272
|
+
const allPrefix = allOr === "" ? <span class="branch-0 cbranch-no" title="branch not covered" >"*:* AND" </span>: ""
|
|
1273
|
+
return allPrefix + "NOT " + contains(key, value)
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
const containsAny = (key, value) => {
|
|
1277
|
+
return contains(key, value, "OR")
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
const oneOf = (key, value) => {
|
|
1281
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(value)) {
|
|
1167
1282
|
<span class="cstat-no" title="statement not covered" > if (typeof value === "string") {</span>
|
|
1168
1283
|
<span class="cstat-no" title="statement not covered" > value = value.split(",")</span>
|
|
1169
1284
|
} else {
|
|
1170
1285
|
<span class="cstat-no" title="statement not covered" > return ""</span>
|
|
1171
1286
|
}
|
|
1172
1287
|
}
|
|
1173
|
-
let orStatement =
|
|
1174
|
-
|
|
1175
|
-
|
|
1288
|
+
let orStatement = `${builder.preprocess(value[0], allPreProcessingOpts)}`
|
|
1289
|
+
for (let i = 1; i < value.length; i++) {
|
|
1290
|
+
orStatement += ` OR ${builder.preprocess(
|
|
1176
1291
|
value[i],
|
|
1177
1292
|
allPreProcessingOpts
|
|
1178
1293
|
)}`
|
|
1179
1294
|
}
|
|
1180
|
-
|
|
1295
|
+
return `${key}:(${orStatement})`
|
|
1181
1296
|
}
|
|
1182
1297
|
|
|
1183
1298
|
function build(structure, queryFn) {
|
|
1184
1299
|
for (let [key, value] of Object.entries(structure)) {
|
|
1300
|
+
// check for new format - remove numbering if needed
|
|
1301
|
+
key = removeKeyNumbering(key)
|
|
1185
1302
|
key = builder.preprocess(key.replace(/ /g, "_"), {
|
|
1186
1303
|
escape: true,
|
|
1187
1304
|
})
|
|
@@ -1189,8 +1306,8 @@ class QueryBuilder {
|
|
|
1189
1306
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (expression == null) {
|
|
1190
1307
|
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
1191
1308
|
}
|
|
1192
|
-
|
|
1193
|
-
query += ` ${allOr ?
|
|
1309
|
+
if (query.length > 0) {
|
|
1310
|
+
query += ` ${allOr ? "OR" : "AND"} `
|
|
1194
1311
|
}
|
|
1195
1312
|
query += expression
|
|
1196
1313
|
}
|
|
@@ -1198,31 +1315,31 @@ class QueryBuilder {
|
|
|
1198
1315
|
|
|
1199
1316
|
// Construct the actual lucene search query string from JSON structure
|
|
1200
1317
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.string) {
|
|
1201
|
-
build(this.query.string,
|
|
1202
|
-
<span class="
|
|
1318
|
+
build(this.query.string, (key, value) => {
|
|
1319
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
|
|
1203
1320
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1204
1321
|
}
|
|
1205
|
-
|
|
1322
|
+
value = builder.preprocess(value, {
|
|
1206
1323
|
escape: true,
|
|
1207
1324
|
lowercase: true,
|
|
1208
1325
|
})
|
|
1209
|
-
|
|
1326
|
+
return `${key}:${value}*`
|
|
1210
1327
|
})
|
|
1211
1328
|
}
|
|
1212
1329
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.range) {
|
|
1213
|
-
build(this.query.range,
|
|
1214
|
-
<span class="
|
|
1330
|
+
build(this.query.range, (key, value) => {
|
|
1331
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
|
|
1215
1332
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1216
1333
|
}
|
|
1217
|
-
<span class="
|
|
1334
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (value.low == null || value.low === "") {
|
|
1218
1335
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1219
1336
|
}
|
|
1220
|
-
<span class="
|
|
1337
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (value.high == null || value.high === "") {
|
|
1221
1338
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1222
1339
|
}
|
|
1223
|
-
const low =
|
|
1224
|
-
const high =
|
|
1225
|
-
|
|
1340
|
+
const low = builder.preprocess(value.low, allPreProcessingOpts)
|
|
1341
|
+
const high = builder.preprocess(value.high, allPreProcessingOpts)
|
|
1342
|
+
return `${key}:[${low} TO ${high}]`
|
|
1226
1343
|
})
|
|
1227
1344
|
}
|
|
1228
1345
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.fuzzy) {
|
|
@@ -1241,18 +1358,18 @@ class QueryBuilder {
|
|
|
1241
1358
|
build(this.query.equal, equal)
|
|
1242
1359
|
}
|
|
1243
1360
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEqual) {
|
|
1244
|
-
build(this.query.notEqual,
|
|
1245
|
-
<span class="
|
|
1361
|
+
build(this.query.notEqual, (key, value) => {
|
|
1362
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
|
|
1246
1363
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1247
1364
|
}
|
|
1248
|
-
|
|
1365
|
+
return `!${key}:${builder.preprocess(value, allPreProcessingOpts)}`
|
|
1249
1366
|
})
|
|
1250
1367
|
}
|
|
1251
1368
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.empty) {
|
|
1252
|
-
build(this.query.empty,
|
|
1369
|
+
build(this.query.empty, key => `!${key}:["" TO *]`)
|
|
1253
1370
|
}
|
|
1254
1371
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notEmpty) {
|
|
1255
|
-
build(this.query.notEmpty,
|
|
1372
|
+
build(this.query.notEmpty, key => `${key}:["" TO *]`)
|
|
1256
1373
|
}
|
|
1257
1374
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.oneOf) {
|
|
1258
1375
|
build(this.query.oneOf, oneOf)
|
|
@@ -1260,6 +1377,12 @@ class QueryBuilder {
|
|
|
1260
1377
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.contains) {
|
|
1261
1378
|
build(this.query.contains, contains)
|
|
1262
1379
|
}
|
|
1380
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.notContains) {
|
|
1381
|
+
build(this.query.notContains, notContains)
|
|
1382
|
+
}
|
|
1383
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.query.containsAny) {
|
|
1384
|
+
build(this.query.containsAny, containsAny)
|
|
1385
|
+
}
|
|
1263
1386
|
// make sure table ID is always added as an AND
|
|
1264
1387
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (tableId) {
|
|
1265
1388
|
query = `(${query})`
|
|
@@ -1275,13 +1398,13 @@ class QueryBuilder {
|
|
|
1275
1398
|
limit: Math.min(this.limit, 200),
|
|
1276
1399
|
include_docs: this.includeDocs,
|
|
1277
1400
|
}
|
|
1278
|
-
|
|
1279
|
-
|
|
1401
|
+
if (this.bookmark) {
|
|
1402
|
+
body.bookmark = this.bookmark
|
|
1280
1403
|
}
|
|
1281
|
-
|
|
1282
|
-
const order = <span class="
|
|
1283
|
-
const type =
|
|
1284
|
-
|
|
1404
|
+
if (this.sort) {
|
|
1405
|
+
const order = this.sortOrder === "descending" ? <span class="branch-0 cbranch-no" title="branch not covered" >"-" </span>: ""
|
|
1406
|
+
const type = `<${this.sortType}>`
|
|
1407
|
+
body.sort = `${order}${this.sort.replace(/ /g, "_")}${type}`
|
|
1285
1408
|
}
|
|
1286
1409
|
return body
|
|
1287
1410
|
}
|
|
@@ -1295,6 +1418,9 @@ class QueryBuilder {
|
|
|
1295
1418
|
}
|
|
1296
1419
|
}
|
|
1297
1420
|
|
|
1421
|
+
// exported for unit testing
|
|
1422
|
+
exports.QueryBuilder = QueryBuilder
|
|
1423
|
+
|
|
1298
1424
|
/**
|
|
1299
1425
|
* Executes a lucene search query.
|
|
1300
1426
|
* @param url The query URL
|
|
@@ -1388,32 +1514,32 @@ const recursiveSearch = async (query, params) => {
|
|
|
1388
1514
|
* bookmark {string} The bookmark to resume from
|
|
1389
1515
|
* @returns {Promise<{hasNextPage: boolean, rows: *[]}>}
|
|
1390
1516
|
*/
|
|
1391
|
-
exports.paginatedSearch =
|
|
1392
|
-
let limit =
|
|
1393
|
-
|
|
1394
|
-
|
|
1517
|
+
exports.paginatedSearch = async (query, params) => {
|
|
1518
|
+
let limit = params.limit
|
|
1519
|
+
if (limit == null || isNaN(limit) || limit < 0) {
|
|
1520
|
+
limit = 50
|
|
1395
1521
|
}
|
|
1396
|
-
|
|
1397
|
-
const search =
|
|
1522
|
+
limit = Math.min(limit, 200)
|
|
1523
|
+
const search = new QueryBuilder(query)
|
|
1398
1524
|
.setVersion(params.version)
|
|
1399
1525
|
.setTable(params.tableId)
|
|
1400
1526
|
.setSort(params.sort)
|
|
1401
1527
|
.setSortOrder(params.sortOrder)
|
|
1402
1528
|
.setSortType(params.sortType)
|
|
1403
|
-
const searchResults =
|
|
1529
|
+
const searchResults = await search
|
|
1404
1530
|
.setBookmark(params.bookmark)
|
|
1405
1531
|
.setLimit(limit)
|
|
1406
1532
|
.run()
|
|
1407
1533
|
|
|
1408
1534
|
// Try fetching 1 row in the next page to see if another page of results
|
|
1409
1535
|
// exists or not
|
|
1410
|
-
const nextResults =
|
|
1536
|
+
const nextResults = await search
|
|
1411
1537
|
.setTable(params.tableId)
|
|
1412
1538
|
.setBookmark(searchResults.bookmark)
|
|
1413
1539
|
.setLimit(1)
|
|
1414
1540
|
.run()
|
|
1415
1541
|
|
|
1416
|
-
|
|
1542
|
+
return {
|
|
1417
1543
|
...searchResults,
|
|
1418
1544
|
hasNextPage: nextResults.rows && nextResults.rows.length > 0,
|
|
1419
1545
|
}
|
|
@@ -1450,7 +1576,7 @@ exports.fullSearch = async (query, params) => {
|
|
|
1450
1576
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1451
1577
|
Code coverage generated by
|
|
1452
1578
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1453
|
-
at
|
|
1579
|
+
at Fri Sep 02 2022 09:18:07 GMT+0000 (Coordinated Universal Time)
|
|
1454
1580
|
</div>
|
|
1455
1581
|
<script src="../../../prettify.js"></script>
|
|
1456
1582
|
<script>
|