apostrophe 2.221.0 → 2.221.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/CHANGELOG.md +12 -0
- package/lib/modules/apostrophe-caches/index.js +23 -1
- package/lib/modules/apostrophe-soft-redirects/index.js +21 -14
- package/package.json +1 -1
- package/test/caches.js +29 -0
- package/test/soft-redirects.js +16 -3
- package/.nyc_output/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
- package/.nyc_output/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
- package/.nyc_output/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
- package/.nyc_output/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
- package/.nyc_output/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
- package/.nyc_output/processinfo/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
- package/.nyc_output/processinfo/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
- package/.nyc_output/processinfo/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
- package/.nyc_output/processinfo/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
- package/.nyc_output/processinfo/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/coverage/a3/defaults.js.html +0 -253
- package/coverage/a3/index.html +0 -131
- package/coverage/a3/index.js.html +0 -2338
- package/coverage/a3/lib/escape-host.js.html +0 -109
- package/coverage/a3/lib/index.html +0 -176
- package/coverage/a3/lib/mongodb-connect.js.html +0 -250
- package/coverage/a3/lib/moog-require.js.html +0 -790
- package/coverage/a3/lib/moog.js.html +0 -1711
- package/coverage/a3/lib/opentelemetry.js.html +0 -517
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.js.html +0 -931
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.js.html +0 -115
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.js.html +0 -1105
- package/coverage/a3/modules/@apostrophecms/archive-page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/archive-page/index.js.html +0 -97
- package/coverage/a3/modules/@apostrophecms/area/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/area/index.js.html +0 -2104
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/area.js.html +0 -469
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/widget.js.html +0 -286
- package/coverage/a3/modules/@apostrophecms/asset/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/index.js.html +0 -3982
- package/coverage/a3/modules/@apostrophecms/asset/lib/globalIcons.js.html +0 -346
- package/coverage/a3/modules/@apostrophecms/asset/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js.html +0 -289
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.vue.js.html +0 -148
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.es5.js.html +0 -184
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js.html +0 -238
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/utils.js.html +0 -958
- package/coverage/a3/modules/@apostrophecms/attachment/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/index.js.html +0 -3676
- package/coverage/a3/modules/@apostrophecms/attachment/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/lib/legacy-migrations.js.html +0 -205
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/rescale.js.html +0 -328
- package/coverage/a3/modules/@apostrophecms/busy/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/busy/index.js.html +0 -145
- package/coverage/a3/modules/@apostrophecms/cache/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/cache/index.js.html +0 -424
- package/coverage/a3/modules/@apostrophecms/db/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/db/index.js.html +0 -640
- package/coverage/a3/modules/@apostrophecms/doc/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc/index.js.html +0 -3937
- package/coverage/a3/modules/@apostrophecms/doc/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc/lib/legacy-migrations.js.html +0 -622
- package/coverage/a3/modules/@apostrophecms/doc-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/doc-type/index.js.html +0 -8638
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/autocomplete.js.html +0 -319
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/email/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/email/index.js.html +0 -301
- package/coverage/a3/modules/@apostrophecms/error/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/error/index.js.html +0 -202
- package/coverage/a3/modules/@apostrophecms/express/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/express/index.js.html +0 -2116
- package/coverage/a3/modules/@apostrophecms/file/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/file/index.js.html +0 -367
- package/coverage/a3/modules/@apostrophecms/file-tag/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/file-tag/index.js.html +0 -127
- package/coverage/a3/modules/@apostrophecms/global/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/global/index.js.html +0 -535
- package/coverage/a3/modules/@apostrophecms/home-page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/home-page/index.js.html +0 -94
- package/coverage/a3/modules/@apostrophecms/html-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/html-widget/index.js.html +0 -271
- package/coverage/a3/modules/@apostrophecms/http/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/http/index.js.html +0 -976
- package/coverage/a3/modules/@apostrophecms/i18n/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/i18n/index.js.html +0 -2083
- package/coverage/a3/modules/@apostrophecms/image/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image/index.js.html +0 -1486
- package/coverage/a3/modules/@apostrophecms/image-tag/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image-tag/index.js.html +0 -127
- package/coverage/a3/modules/@apostrophecms/image-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/image-widget/index.js.html +0 -145
- package/coverage/a3/modules/@apostrophecms/job/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/job/index.js.html +0 -1321
- package/coverage/a3/modules/@apostrophecms/launder/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/launder/index.js.html +0 -124
- package/coverage/a3/modules/@apostrophecms/lock/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/lock/index.js.html +0 -676
- package/coverage/a3/modules/@apostrophecms/login/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/login/index.js.html +0 -2617
- package/coverage/a3/modules/@apostrophecms/migration/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/migration/index.js.html +0 -970
- package/coverage/a3/modules/@apostrophecms/modal/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/modal/index.js.html +0 -193
- package/coverage/a3/modules/@apostrophecms/module/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/module/index.js.html +0 -2500
- package/coverage/a3/modules/@apostrophecms/module/lib/events.js.html +0 -547
- package/coverage/a3/modules/@apostrophecms/module/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/notification/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/notification/index.js.html +0 -1315
- package/coverage/a3/modules/@apostrophecms/oembed/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/oembed/index.js.html +0 -781
- package/coverage/a3/modules/@apostrophecms/oembed/lib/index.html +0 -161
- package/coverage/a3/modules/@apostrophecms/oembed/lib/infogram.js.html +0 -178
- package/coverage/a3/modules/@apostrophecms/oembed/lib/vimeo.js.html +0 -124
- package/coverage/a3/modules/@apostrophecms/oembed/lib/wufoo.js.html +0 -256
- package/coverage/a3/modules/@apostrophecms/oembed/lib/youtube.js.html +0 -322
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.js.html +0 -268
- package/coverage/a3/modules/@apostrophecms/page/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page/index.js.html +0 -6955
- package/coverage/a3/modules/@apostrophecms/page/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page/lib/legacy-migrations.js.html +0 -568
- package/coverage/a3/modules/@apostrophecms/page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/page-type/index.js.html +0 -1501
- package/coverage/a3/modules/@apostrophecms/pager/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/pager/index.js.html +0 -232
- package/coverage/a3/modules/@apostrophecms/permission/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/permission/index.js.html +0 -1057
- package/coverage/a3/modules/@apostrophecms/permission/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/permission/lib/legacy-migrations.js.html +0 -160
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.js.html +0 -1051
- package/coverage/a3/modules/@apostrophecms/piece-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/piece-type/index.js.html +0 -3103
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.js.html +0 -157
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.js.html +0 -1363
- package/coverage/a3/modules/@apostrophecms/schema/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/schema/index.js.html +0 -4603
- package/coverage/a3/modules/@apostrophecms/schema/lib/addFieldTypes.js.html +0 -3502
- package/coverage/a3/modules/@apostrophecms/schema/lib/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/schema/lib/joinr.js.html +0 -703
- package/coverage/a3/modules/@apostrophecms/search/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/search/index.js.html +0 -1222
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.js.html +0 -343
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.js.html +0 -595
- package/coverage/a3/modules/@apostrophecms/task/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/task/index.js.html +0 -1147
- package/coverage/a3/modules/@apostrophecms/template/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/template/index.js.html +0 -2731
- package/coverage/a3/modules/@apostrophecms/template/lib/bundlesLoader.js.html +0 -559
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/component.js.html +0 -310
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/fragment.js.html +0 -325
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/index.html +0 -146
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/render.js.html +0 -490
- package/coverage/a3/modules/@apostrophecms/template/lib/index.html +0 -131
- package/coverage/a3/modules/@apostrophecms/template/lib/nunjucksLoader.js.html +0 -658
- package/coverage/a3/modules/@apostrophecms/ui/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/ui/index.js.html +0 -181
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.js.html +0 -286
- package/coverage/a3/modules/@apostrophecms/url/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/url/index.js.html +0 -733
- package/coverage/a3/modules/@apostrophecms/user/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/user/index.js.html +0 -1684
- package/coverage/a3/modules/@apostrophecms/user/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/user/lib/legacy-migrations.js.html +0 -157
- package/coverage/a3/modules/@apostrophecms/util/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/util/index.js.html +0 -3424
- package/coverage/a3/modules/@apostrophecms/util/lib/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/util/lib/logger.js.html +0 -319
- package/coverage/a3/modules/@apostrophecms/video-widget/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/video-widget/index.js.html +0 -178
- package/coverage/a3/modules/@apostrophecms/widget-type/index.html +0 -116
- package/coverage/a3/modules/@apostrophecms/widget-type/index.js.html +0 -1225
- package/coverage/a3/test-lib/index.html +0 -131
- package/coverage/a3/test-lib/test.js.html +0 -232
- package/coverage/a3/test-lib/util.js.html +0 -373
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -1256
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
|
@@ -1,703 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for a3/modules/@apostrophecms/schema/lib/joinr.js</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../../index.html">All files</a> / <a href="index.html">a3/modules/@apostrophecms/schema/lib</a> joinr.js</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">95.55% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>43/45</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">70% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>21/30</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>6/6</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">95.45% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>42/44</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-neutral"> </span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-neutral"> </span>
|
|
320
|
-
<span class="cline-any cline-neutral"> </span>
|
|
321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
333
|
-
<span class="cline-any cline-yes">266x</span>
|
|
334
|
-
<span class="cline-any cline-yes">266x</span>
|
|
335
|
-
<span class="cline-any cline-yes">266x</span>
|
|
336
|
-
<span class="cline-any cline-yes">470x</span>
|
|
337
|
-
<span class="cline-any cline-yes">470x</span>
|
|
338
|
-
<span class="cline-any cline-yes">418x</span>
|
|
339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-yes">266x</span>
|
|
342
|
-
<span class="cline-any cline-yes">90x</span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">90x</span>
|
|
345
|
-
<span class="cline-any cline-yes">261x</span>
|
|
346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-yes">90x</span>
|
|
349
|
-
<span class="cline-any cline-yes">292x</span>
|
|
350
|
-
<span class="cline-any cline-yes">585x</span>
|
|
351
|
-
<span class="cline-any cline-yes">585x</span>
|
|
352
|
-
<span class="cline-any cline-yes">585x</span>
|
|
353
|
-
<span class="cline-any cline-yes">585x</span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-no"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-yes">10x</span>
|
|
426
|
-
<span class="cline-any cline-yes">10x</span>
|
|
427
|
-
<span class="cline-any cline-yes">10x</span>
|
|
428
|
-
<span class="cline-any cline-yes">10x</span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-yes">10x</span>
|
|
432
|
-
<span class="cline-any cline-yes">10x</span>
|
|
433
|
-
<span class="cline-any cline-yes">10x</span>
|
|
434
|
-
<span class="cline-any cline-yes">10x</span>
|
|
435
|
-
<span class="cline-any cline-yes">10x</span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-yes">10x</span>
|
|
439
|
-
<span class="cline-any cline-yes">8x</span>
|
|
440
|
-
<span class="cline-any cline-yes">8x</span>
|
|
441
|
-
<span class="cline-any cline-yes">8x</span>
|
|
442
|
-
<span class="cline-any cline-yes">8x</span>
|
|
443
|
-
<span class="cline-any cline-yes">8x</span>
|
|
444
|
-
<span class="cline-any cline-yes">8x</span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-no"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-yes">470x</span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
466
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
467
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
468
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
469
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
470
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-yes">1781x</span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const joinr = module.exports = {
|
|
479
|
-
// Fetch a one-to-many relationship with related documents via an array property
|
|
480
|
-
// of your documents.
|
|
481
|
-
//
|
|
482
|
-
// If you have users and wish to bring all associated groups into a
|
|
483
|
-
// ._groups property based on a .groupIds array property, this is what
|
|
484
|
-
// you want.
|
|
485
|
-
//
|
|
486
|
-
// The first argument should be an array of documents already fetched.
|
|
487
|
-
//
|
|
488
|
-
// The second argument is the name of an array property in each of those documents
|
|
489
|
-
// that identifies related documents by id (for instance, groupIds).
|
|
490
|
-
//
|
|
491
|
-
// The third argument is the name of an object property in each of
|
|
492
|
-
// those documents that describes the relationship between the document and each
|
|
493
|
-
// of the related documents. This object is expected to be structured like this:
|
|
494
|
-
//
|
|
495
|
-
// personFields: {
|
|
496
|
-
// idOfPerson1: {
|
|
497
|
-
// jobTitle: 'Chief Cook'
|
|
498
|
-
// },
|
|
499
|
-
// idOfPerson2: {
|
|
500
|
-
// jobTitle: 'Chief Bottle Washer'
|
|
501
|
-
// }
|
|
502
|
-
// }
|
|
503
|
-
//
|
|
504
|
-
// If no relationship fields are needed it may be falsy.
|
|
505
|
-
//
|
|
506
|
-
// The fourth argument is the array property name in which to store the related
|
|
507
|
-
// documents after fetching them (for instance, _groups).
|
|
508
|
-
//
|
|
509
|
-
// The fifth argument is the function to call to fetch the related documents.
|
|
510
|
-
// This function will receive an array of IDs and its awaited return value
|
|
511
|
-
// must be an array of documents.
|
|
512
|
-
//
|
|
513
|
-
// The sixth argument is a function to transform each `_id`. This is
|
|
514
|
-
// used to add or rewrite the locale suffix.
|
|
515
|
-
//
|
|
516
|
-
// Afterwards the related documents will be attached directly to the items under the
|
|
517
|
-
// array property name specified by objectsField.
|
|
518
|
-
//
|
|
519
|
-
// *If the fieldsStorage argument is present*, the related documents
|
|
520
|
-
// are returned as usual, with an additional `_fields` property added to
|
|
521
|
-
// each, containing the custom relationship fields for that object.
|
|
522
|
-
//
|
|
523
|
-
// group._people[0].name <-- Person's name
|
|
524
|
-
// group._people[0]._fields.jobTitle <-- Person's job title in
|
|
525
|
-
// this specific department; they may have other titles in other departments
|
|
526
|
-
//
|
|
527
|
-
// Since the same person may be related to more than one group, but with different
|
|
528
|
-
// custom relationship fields, this method guarantees that the person object will be
|
|
529
|
-
// shallowly cloned so that it can have a distinct `_fields` property.
|
|
530
|
-
//
|
|
531
|
-
// Example:
|
|
532
|
-
//
|
|
533
|
-
// await joinr.byArray(users, 'groupIds', '_groups', async function(ids) {
|
|
534
|
-
// // returns a promise, as good as awaiting
|
|
535
|
-
// return groupsCollection.find({ groupIds: { $in: ids } }).toArray();
|
|
536
|
-
// });
|
|
537
|
-
|
|
538
|
-
byArray: async function(items, idsStorage, fieldsStorage, objectsField, getter, idMapper) {
|
|
539
|
-
let otherIds = [];
|
|
540
|
-
const othersById = {};
|
|
541
|
-
for (const item of items) {
|
|
542
|
-
item[objectsField] = [];
|
|
543
|
-
if (joinr._has(item, idsStorage)) {
|
|
544
|
-
otherIds = otherIds.concat(joinr._get(item, idsStorage).map(idMapper));
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
if (otherIds.length) {
|
|
548
|
-
const others = await getter(otherIds);
|
|
549
|
-
// Make a lookup table of the others by id
|
|
550
|
-
for (const other of others) {
|
|
551
|
-
othersById[idMapper(other._id)] = other;
|
|
552
|
-
}
|
|
553
|
-
// Attach the others to the items
|
|
554
|
-
for (const item of items) {
|
|
555
|
-
for (const id of (joinr._get(item, idsStorage) || []).map(idMapper)) {
|
|
556
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (othersById[id]) {
|
|
557
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (fieldsStorage) {
|
|
558
|
-
const fieldsById = joinr._get(item, fieldsStorage) || {};
|
|
559
|
-
item[objectsField].push({
|
|
560
|
-
...othersById[id],
|
|
561
|
-
_fields: fieldsById[id] || {}
|
|
562
|
-
});
|
|
563
|
-
} else {
|
|
564
|
-
<span class="cstat-no" title="statement not covered" > item[objectsField].push(othersById[id]);</span>
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
},
|
|
571
|
-
|
|
572
|
-
// Perform a one-to-many relationship with related documents via an array property
|
|
573
|
-
// of the related documents.
|
|
574
|
-
//
|
|
575
|
-
// If you have groups and wish to bring all associated users into a
|
|
576
|
-
// ._users property based on a .groupIds array property of those users,
|
|
577
|
-
// this is what you want.
|
|
578
|
-
//
|
|
579
|
-
// The first argument should be an array of documents already fetched.
|
|
580
|
-
//
|
|
581
|
-
// The second argument is the array property in each of the related documents
|
|
582
|
-
// that identifies documents in your original collection (for instance,
|
|
583
|
-
// groupIds).
|
|
584
|
-
//
|
|
585
|
-
// The optional third argument is the name of an object property in each of
|
|
586
|
-
// those related documents that describes the relationship between the related
|
|
587
|
-
// document and each of your documents. This object is expected to be structured
|
|
588
|
-
// like this:
|
|
589
|
-
//
|
|
590
|
-
// personFields: {
|
|
591
|
-
// idOfPerson1: {
|
|
592
|
-
// jobTitle: 'Chief Cook'
|
|
593
|
-
// },
|
|
594
|
-
// idOfPerson2: {
|
|
595
|
-
// jobTitle: 'Chief Bottle Washer'
|
|
596
|
-
// }
|
|
597
|
-
// }
|
|
598
|
-
//
|
|
599
|
-
// The fourth argument is the array property name in which to store the related
|
|
600
|
-
// documents after fetching them (for instance, _users).
|
|
601
|
-
//
|
|
602
|
-
// The fifth argument is the function to call to fetch the related documents.
|
|
603
|
-
// This function will receive an array of IDs referring to documents in
|
|
604
|
-
// your original collection. It will be awaited, and the resolved value must
|
|
605
|
-
// be an array of documents.
|
|
606
|
-
//
|
|
607
|
-
// The sixth argument is a function to transform each `_id`. This is
|
|
608
|
-
// used to add or rewrite the locale suffix.
|
|
609
|
-
//
|
|
610
|
-
// Afterwards The related documents will be attached directly to the items under the
|
|
611
|
-
// property name specified by `objectsField`.
|
|
612
|
-
//
|
|
613
|
-
// *If the fieldsStorage argument is truthy*, then each related document
|
|
614
|
-
// gains an extra `_fields` property, containing the relationship data
|
|
615
|
-
// for that object. Note that the related documents are shallowly cloned to
|
|
616
|
-
// ensure the same document can be related to two items but with different
|
|
617
|
-
// relationship data.
|
|
618
|
-
//
|
|
619
|
-
// group._people[0].name <-- person's name
|
|
620
|
-
// group._people[0]._fields.jobTitle <-- Person's job title in
|
|
621
|
-
// this specific department; they may have other titles in other departments
|
|
622
|
-
//
|
|
623
|
-
// Example:
|
|
624
|
-
//
|
|
625
|
-
// await joinr.byArrayReverse(groups, 'groupIds', '_users', async function(ids) {
|
|
626
|
-
// // returns a promise, as good as awaiting
|
|
627
|
-
// return usersCollection.find({ placeIds: { $in: ids } }).toArray();
|
|
628
|
-
// });
|
|
629
|
-
|
|
630
|
-
byArrayReverse: async function(items, idsStorage, fieldsStorage, objectsField, getter, idMapper) {
|
|
631
|
-
const itemIds = items.map(item => idMapper(item._id));
|
|
632
|
-
for (const item of items) {
|
|
633
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!item[objectsField]) {
|
|
634
|
-
item[objectsField] = [];
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (itemIds.length) {
|
|
638
|
-
const others = await getter(itemIds);
|
|
639
|
-
const itemsById = {};
|
|
640
|
-
for (const item of items) {
|
|
641
|
-
itemsById[idMapper(item._id)] = item;
|
|
642
|
-
}
|
|
643
|
-
// Attach the others to the items
|
|
644
|
-
for (const other of others) {
|
|
645
|
-
for (const id of (joinr._get(other, idsStorage) || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.map(idMapper)) {
|
|
646
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (itemsById[id]) {
|
|
647
|
-
const item = itemsById[id];
|
|
648
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (fieldsStorage) {
|
|
649
|
-
const fieldsById = joinr._get(other, fieldsStorage) || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
650
|
-
item[objectsField].push({
|
|
651
|
-
...other,
|
|
652
|
-
_fields: fieldsById[idMapper(item._id)] || {}
|
|
653
|
-
});
|
|
654
|
-
} else {
|
|
655
|
-
<span class="cstat-no" title="statement not covered" > item[objectsField].push(other);</span>
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
},
|
|
662
|
-
|
|
663
|
-
_has: function(o, accessor) {
|
|
664
|
-
return !!joinr._get(o, accessor);
|
|
665
|
-
},
|
|
666
|
-
|
|
667
|
-
// This supports: foo, foo.bar, foo.bar.baz (dot notation,
|
|
668
|
-
// like mongodb) and also passing in a custom accessor function
|
|
669
|
-
|
|
670
|
-
_get: function(o, accessor) {
|
|
671
|
-
let fn = accessor;
|
|
672
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof (accessor) === 'string') {
|
|
673
|
-
fn = function(o) {
|
|
674
|
-
const keys = accessor.split(/\./);
|
|
675
|
-
for (const key of keys) {
|
|
676
|
-
o = o[key];
|
|
677
|
-
}
|
|
678
|
-
return o;
|
|
679
|
-
};
|
|
680
|
-
}
|
|
681
|
-
return fn(o);
|
|
682
|
-
}
|
|
683
|
-
};
|
|
684
|
-
</pre></td></tr></table></pre>
|
|
685
|
-
|
|
686
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
687
|
-
</div><!-- /wrapper -->
|
|
688
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
689
|
-
Code coverage generated by
|
|
690
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
691
|
-
at Wed Jun 08 2022 11:06:49 GMT+0200 (Central European Summer Time)
|
|
692
|
-
</div>
|
|
693
|
-
<script src="../../../../../prettify.js"></script>
|
|
694
|
-
<script>
|
|
695
|
-
window.onload = function () {
|
|
696
|
-
prettyPrint();
|
|
697
|
-
};
|
|
698
|
-
</script>
|
|
699
|
-
<script src="../../../../../sorter.js"></script>
|
|
700
|
-
<script src="../../../../../block-navigation.js"></script>
|
|
701
|
-
</body>
|
|
702
|
-
</html>
|
|
703
|
-
|