apostrophe 2.220.9 → 2.221.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/.nyc_output/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +1 -0
- package/.nyc_output/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +1 -0
- package/.nyc_output/99acae99-becc-463d-ba35-9333f88d2694.json +1 -0
- package/.nyc_output/d071f9e0-3b11-44e6-9817-69f184dd064d.json +1 -0
- package/.nyc_output/ed000bec-7ff7-49bf-a109-d17bfe883433.json +1 -0
- package/.nyc_output/processinfo/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +1 -0
- package/.nyc_output/processinfo/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +1 -0
- package/.nyc_output/processinfo/99acae99-becc-463d-ba35-9333f88d2694.json +1 -0
- package/.nyc_output/processinfo/d071f9e0-3b11-44e6-9817-69f184dd064d.json +1 -0
- package/.nyc_output/processinfo/ed000bec-7ff7-49bf-a109-d17bfe883433.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/CHANGELOG.md +12 -0
- package/coverage/a3/defaults.js.html +253 -0
- package/coverage/a3/index.html +131 -0
- package/coverage/a3/index.js.html +2338 -0
- package/coverage/a3/lib/escape-host.js.html +109 -0
- package/coverage/a3/lib/index.html +176 -0
- package/coverage/a3/lib/mongodb-connect.js.html +250 -0
- package/coverage/a3/lib/moog-require.js.html +790 -0
- package/coverage/a3/lib/moog.js.html +1711 -0
- package/coverage/a3/lib/opentelemetry.js.html +517 -0
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/admin-bar/index.js.html +931 -0
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/any-doc-type/index.js.html +115 -0
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/any-page-type/index.js.html +1105 -0
- package/coverage/a3/modules/@apostrophecms/archive-page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/archive-page/index.js.html +97 -0
- package/coverage/a3/modules/@apostrophecms/area/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/area/index.js.html +2104 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/area.js.html +469 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/widget.js.html +286 -0
- package/coverage/a3/modules/@apostrophecms/asset/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/index.js.html +3982 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/globalIcons.js.html +346 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js.html +289 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.vue.js.html +148 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.es5.js.html +184 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js.html +238 -0
- package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/utils.js.html +958 -0
- package/coverage/a3/modules/@apostrophecms/attachment/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/index.js.html +3676 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/legacy-migrations.js.html +205 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/rescale.js.html +328 -0
- package/coverage/a3/modules/@apostrophecms/busy/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/busy/index.js.html +145 -0
- package/coverage/a3/modules/@apostrophecms/cache/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/cache/index.js.html +424 -0
- package/coverage/a3/modules/@apostrophecms/db/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/db/index.js.html +640 -0
- package/coverage/a3/modules/@apostrophecms/doc/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc/index.js.html +3937 -0
- package/coverage/a3/modules/@apostrophecms/doc/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc/lib/legacy-migrations.js.html +622 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/index.js.html +8638 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/autocomplete.js.html +319 -0
- package/coverage/a3/modules/@apostrophecms/doc-type/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/email/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/email/index.js.html +301 -0
- package/coverage/a3/modules/@apostrophecms/error/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/error/index.js.html +202 -0
- package/coverage/a3/modules/@apostrophecms/express/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/express/index.js.html +2116 -0
- package/coverage/a3/modules/@apostrophecms/file/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/file/index.js.html +367 -0
- package/coverage/a3/modules/@apostrophecms/file-tag/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/file-tag/index.js.html +127 -0
- package/coverage/a3/modules/@apostrophecms/global/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/global/index.js.html +535 -0
- package/coverage/a3/modules/@apostrophecms/home-page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/home-page/index.js.html +94 -0
- package/coverage/a3/modules/@apostrophecms/html-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/html-widget/index.js.html +271 -0
- package/coverage/a3/modules/@apostrophecms/http/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/http/index.js.html +976 -0
- package/coverage/a3/modules/@apostrophecms/i18n/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/i18n/index.js.html +2083 -0
- package/coverage/a3/modules/@apostrophecms/image/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image/index.js.html +1486 -0
- package/coverage/a3/modules/@apostrophecms/image-tag/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image-tag/index.js.html +127 -0
- package/coverage/a3/modules/@apostrophecms/image-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/image-widget/index.js.html +145 -0
- package/coverage/a3/modules/@apostrophecms/job/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/job/index.js.html +1321 -0
- package/coverage/a3/modules/@apostrophecms/launder/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/launder/index.js.html +124 -0
- package/coverage/a3/modules/@apostrophecms/lock/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/lock/index.js.html +676 -0
- package/coverage/a3/modules/@apostrophecms/login/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/login/index.js.html +2617 -0
- package/coverage/a3/modules/@apostrophecms/migration/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/migration/index.js.html +970 -0
- package/coverage/a3/modules/@apostrophecms/modal/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/modal/index.js.html +193 -0
- package/coverage/a3/modules/@apostrophecms/module/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/module/index.js.html +2500 -0
- package/coverage/a3/modules/@apostrophecms/module/lib/events.js.html +547 -0
- package/coverage/a3/modules/@apostrophecms/module/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/notification/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/notification/index.js.html +1315 -0
- package/coverage/a3/modules/@apostrophecms/oembed/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/oembed/index.js.html +781 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/index.html +161 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/infogram.js.html +178 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/vimeo.js.html +124 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/wufoo.js.html +256 -0
- package/coverage/a3/modules/@apostrophecms/oembed/lib/youtube.js.html +322 -0
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/oembed-field/index.js.html +268 -0
- package/coverage/a3/modules/@apostrophecms/page/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page/index.js.html +6955 -0
- package/coverage/a3/modules/@apostrophecms/page/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page/lib/legacy-migrations.js.html +568 -0
- package/coverage/a3/modules/@apostrophecms/page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/page-type/index.js.html +1501 -0
- package/coverage/a3/modules/@apostrophecms/pager/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/pager/index.js.html +232 -0
- package/coverage/a3/modules/@apostrophecms/permission/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/permission/index.js.html +1057 -0
- package/coverage/a3/modules/@apostrophecms/permission/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/permission/lib/legacy-migrations.js.html +160 -0
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/piece-page-type/index.js.html +1051 -0
- package/coverage/a3/modules/@apostrophecms/piece-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/piece-type/index.js.html +3103 -0
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.js.html +157 -0
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.js.html +1363 -0
- package/coverage/a3/modules/@apostrophecms/schema/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/schema/index.js.html +4603 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/addFieldTypes.js.html +3502 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/schema/lib/joinr.js.html +703 -0
- package/coverage/a3/modules/@apostrophecms/search/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/search/index.js.html +1222 -0
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/soft-redirect/index.js.html +343 -0
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/submitted-draft/index.js.html +595 -0
- package/coverage/a3/modules/@apostrophecms/task/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/task/index.js.html +1147 -0
- package/coverage/a3/modules/@apostrophecms/template/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/template/index.js.html +2731 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/bundlesLoader.js.html +559 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/component.js.html +310 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/fragment.js.html +325 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/index.html +146 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/render.js.html +490 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/index.html +131 -0
- package/coverage/a3/modules/@apostrophecms/template/lib/nunjucksLoader.js.html +658 -0
- package/coverage/a3/modules/@apostrophecms/ui/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/ui/index.js.html +181 -0
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/uploadfs/index.js.html +286 -0
- package/coverage/a3/modules/@apostrophecms/url/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/url/index.js.html +733 -0
- package/coverage/a3/modules/@apostrophecms/user/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/user/index.js.html +1684 -0
- package/coverage/a3/modules/@apostrophecms/user/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/user/lib/legacy-migrations.js.html +157 -0
- package/coverage/a3/modules/@apostrophecms/util/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/util/index.js.html +3424 -0
- package/coverage/a3/modules/@apostrophecms/util/lib/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/util/lib/logger.js.html +319 -0
- package/coverage/a3/modules/@apostrophecms/video-widget/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/video-widget/index.js.html +178 -0
- package/coverage/a3/modules/@apostrophecms/widget-type/index.html +116 -0
- package/coverage/a3/modules/@apostrophecms/widget-type/index.js.html +1225 -0
- package/coverage/a3/test-lib/index.html +131 -0
- package/coverage/a3/test-lib/test.js.html +232 -0
- package/coverage/a3/test-lib/util.js.html +373 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +1256 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/lib/modules/apostrophe-assets/index.js +3 -1
- package/lib/modules/apostrophe-pages/lib/api.js +8 -6
- package/package.json +1 -1
- package/test/package.json +0 -75
|
@@ -0,0 +1,976 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for a3/modules/@apostrophecms/http/index.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/http</a> index.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">84% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>63/75</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">78.84% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>41/52</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">83.33% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>15/18</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">84% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>63/75</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>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">90x</span>
|
|
364
|
+
<span class="cline-any cline-yes">90x</span>
|
|
365
|
+
<span class="cline-any cline-yes">90x</span>
|
|
366
|
+
<span class="cline-any cline-yes">90x</span>
|
|
367
|
+
<span class="cline-any cline-yes">90x</span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-yes">90x</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-yes">90x</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-yes">90x</span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-yes">90x</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-no"> </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-yes">652x</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-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
427
|
+
<span class="cline-any cline-neutral"> </span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
434
|
+
<span class="cline-any cline-neutral"> </span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
439
|
+
<span class="cline-any cline-no"> </span>
|
|
440
|
+
<span class="cline-any cline-neutral"> </span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-neutral"> </span>
|
|
443
|
+
<span class="cline-any cline-neutral"> </span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </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-neutral"> </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-yes">97x</span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
472
|
+
<span class="cline-any cline-neutral"> </span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </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>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-neutral"> </span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-yes">1x</span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-neutral"> </span>
|
|
490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-yes">4x</span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
525
|
+
<span class="cline-any cline-neutral"> </span>
|
|
526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
528
|
+
<span class="cline-any cline-neutral"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
532
|
+
<span class="cline-any cline-neutral"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-yes">38x</span>
|
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
537
|
+
<span class="cline-any cline-neutral"> </span>
|
|
538
|
+
<span class="cline-any cline-neutral"> </span>
|
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-neutral"> </span>
|
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
545
|
+
<span class="cline-any cline-yes">792x</span>
|
|
546
|
+
<span class="cline-any cline-yes">792x</span>
|
|
547
|
+
<span class="cline-any cline-yes">29x</span>
|
|
548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-yes">792x</span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
553
|
+
<span class="cline-any cline-yes">792x</span>
|
|
554
|
+
<span class="cline-any cline-yes">792x</span>
|
|
555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
556
|
+
<span class="cline-any cline-yes">792x</span>
|
|
557
|
+
<span class="cline-any cline-yes">1x</span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-yes">792x</span>
|
|
560
|
+
<span class="cline-any cline-yes">665x</span>
|
|
561
|
+
<span class="cline-any cline-yes">665x</span>
|
|
562
|
+
<span class="cline-any cline-yes">665x</span>
|
|
563
|
+
<span class="cline-any cline-yes">665x</span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-yes">792x</span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-yes">2x</span>
|
|
568
|
+
<span class="cline-any cline-yes">2x</span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-yes">2x</span>
|
|
571
|
+
<span class="cline-any cline-yes">2x</span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-yes">790x</span>
|
|
574
|
+
<span class="cline-any cline-yes">131x</span>
|
|
575
|
+
<span class="cline-any cline-yes">131x</span>
|
|
576
|
+
<span class="cline-any cline-yes">131x</span>
|
|
577
|
+
<span class="cline-any cline-yes">659x</span>
|
|
578
|
+
<span class="cline-any cline-no"> </span>
|
|
579
|
+
<span class="cline-any cline-no"> </span>
|
|
580
|
+
<span class="cline-any cline-no"> </span>
|
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
582
|
+
<span class="cline-any cline-yes">792x</span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-yes">792x</span>
|
|
585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
586
|
+
<span class="cline-any cline-yes">665x</span>
|
|
587
|
+
<span class="cline-any cline-yes">1170x</span>
|
|
588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-yes">792x</span>
|
|
591
|
+
<span class="cline-any cline-yes">792x</span>
|
|
592
|
+
<span class="cline-any cline-yes">792x</span>
|
|
593
|
+
<span class="cline-any cline-yes">30x</span>
|
|
594
|
+
<span class="cline-any cline-no"> </span>
|
|
595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
596
|
+
<span class="cline-any cline-yes">30x</span>
|
|
597
|
+
<span class="cline-any cline-yes">30x</span>
|
|
598
|
+
<span class="cline-any cline-yes">30x</span>
|
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-yes">762x</span>
|
|
601
|
+
<span class="cline-any cline-yes">78x</span>
|
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-yes">684x</span>
|
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
605
|
+
<span class="cline-any cline-yes">108x</span>
|
|
606
|
+
<span class="cline-any cline-yes">108x</span>
|
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
610
|
+
<span class="cline-any cline-yes">853x</span>
|
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
612
|
+
<span class="cline-any cline-yes">108x</span>
|
|
613
|
+
<span class="cline-any cline-neutral"> </span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-yes">792x</span>
|
|
620
|
+
<span class="cline-any cline-yes">792x</span>
|
|
621
|
+
<span class="cline-any cline-yes">792x</span>
|
|
622
|
+
<span class="cline-any cline-yes">675x</span>
|
|
623
|
+
<span class="cline-any cline-neutral"> </span>
|
|
624
|
+
<span class="cline-any cline-yes">792x</span>
|
|
625
|
+
<span class="cline-any cline-neutral"> </span>
|
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-neutral"> </span>
|
|
631
|
+
<span class="cline-any cline-neutral"> </span>
|
|
632
|
+
<span class="cline-any cline-neutral"> </span>
|
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
634
|
+
<span class="cline-any cline-yes">28x</span>
|
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
|
636
|
+
<span class="cline-any cline-neutral"> </span>
|
|
637
|
+
<span class="cline-any cline-neutral"> </span>
|
|
638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-neutral"> </span>
|
|
640
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
|
+
<span class="cline-any cline-no"> </span>
|
|
642
|
+
<span class="cline-any cline-no"> </span>
|
|
643
|
+
<span class="cline-any cline-neutral"> </span>
|
|
644
|
+
<span class="cline-any cline-no"> </span>
|
|
645
|
+
<span class="cline-any cline-no"> </span>
|
|
646
|
+
<span class="cline-any cline-no"> </span>
|
|
647
|
+
<span class="cline-any cline-no"> </span>
|
|
648
|
+
<span class="cline-any cline-neutral"> </span>
|
|
649
|
+
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
651
|
+
<span class="cline-any cline-neutral"> </span>
|
|
652
|
+
<span class="cline-any cline-neutral"> </span>
|
|
653
|
+
<span class="cline-any cline-yes">794x</span>
|
|
654
|
+
<span class="cline-any cline-yes">794x</span>
|
|
655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
656
|
+
<span class="cline-any cline-neutral"> </span>
|
|
657
|
+
<span class="cline-any cline-neutral"> </span>
|
|
658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
660
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const _ = require('lodash');
|
|
661
|
+
const qs = require('qs');
|
|
662
|
+
const fetch = require('node-fetch');
|
|
663
|
+
const tough = require('tough-cookie');
|
|
664
|
+
const escapeHost = require('../../../lib/escape-host');
|
|
665
|
+
|
|
666
|
+
module.exports = {
|
|
667
|
+
options: {
|
|
668
|
+
alias: 'http'
|
|
669
|
+
},
|
|
670
|
+
init(self) {
|
|
671
|
+
// Map friendly errors created via `apos.error` to status codes.
|
|
672
|
+
//
|
|
673
|
+
// Everything else comes through as a 500, you don't have to register that one, and
|
|
674
|
+
// shouldn't because clients should never be given sensitive details about 500 errors
|
|
675
|
+
self.errors = {
|
|
676
|
+
min: 400,
|
|
677
|
+
max: 400,
|
|
678
|
+
invalid: 400,
|
|
679
|
+
forbidden: 403,
|
|
680
|
+
notfound: 404,
|
|
681
|
+
required: 422,
|
|
682
|
+
conflict: 409,
|
|
683
|
+
locked: 409,
|
|
684
|
+
unprocessable: 422,
|
|
685
|
+
unimplemented: 501
|
|
686
|
+
};
|
|
687
|
+
_.merge(self.errors, self.options.addErrors);
|
|
688
|
+
},
|
|
689
|
+
methods(self) {
|
|
690
|
+
return {
|
|
691
|
+
// Add another friendly error name to http status code mapping so you
|
|
692
|
+
// can throw `apos.error('name')` and get the status code `code`.
|
|
693
|
+
// Not used in core at the time of writing, but available as part of the
|
|
694
|
+
// API.
|
|
695
|
+
<span class="fstat-no" title="function not covered" > ad</span>dError(name, code) {
|
|
696
|
+
<span class="cstat-no" title="statement not covered" > self.errors[name] = code;</span>
|
|
697
|
+
},
|
|
698
|
+
|
|
699
|
+
// Fetch the given URL and return the response body. Accepts the following options:
|
|
700
|
+
//
|
|
701
|
+
// `qs` (builds a query string with qs)
|
|
702
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
703
|
+
// `parse` (can be 'json` to always parse the response body as JSON, otherwise the response body is
|
|
704
|
+
// parsed as JSON only if the content-type is application/json)
|
|
705
|
+
// `headers` (an object containing header names and values)
|
|
706
|
+
// `fullResponse` (if true, return an object with `status`, `headers` and `body`
|
|
707
|
+
// properties, rather than returning the body directly; the individual `headers` are canonicalized
|
|
708
|
+
// to lowercase names. If a header appears multiple times an array is returned for it)
|
|
709
|
+
//
|
|
710
|
+
// If the status code is >= 400 an error is thrown. The error object will be
|
|
711
|
+
// similar to a `fullResponse` object, with a `status` property.
|
|
712
|
+
//
|
|
713
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
714
|
+
// the apostrophe site itself.
|
|
715
|
+
|
|
716
|
+
async get(url, options) {
|
|
717
|
+
return self.remote('GET', url, options);
|
|
718
|
+
},
|
|
719
|
+
|
|
720
|
+
// Make a HEAD request for the given URL and return the response object,
|
|
721
|
+
// which will include a `status` property as well as `headers`.
|
|
722
|
+
//
|
|
723
|
+
// Options:
|
|
724
|
+
//
|
|
725
|
+
// `qs` (builds a query string with qs)
|
|
726
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
727
|
+
// `headers` (an object containing header names and values)
|
|
728
|
+
//
|
|
729
|
+
// If the status code is >= 400 an error is thrown. The error object
|
|
730
|
+
// will have a `status` property.
|
|
731
|
+
//
|
|
732
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
733
|
+
// the apostrophe site itself.
|
|
734
|
+
|
|
735
|
+
<span class="fstat-no" title="function not covered" > as</span>ync head(url, options) {
|
|
736
|
+
<span class="cstat-no" title="statement not covered" > return self.remote('HEAD', url, options);</span>
|
|
737
|
+
},
|
|
738
|
+
|
|
739
|
+
// Send a POST request to the given URL and return the response body. Accepts the following options:
|
|
740
|
+
//
|
|
741
|
+
// `qs` (pass object; builds a query string with qs)
|
|
742
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
743
|
+
// `send` (can be 'json' to always send `options.body` JSON encoded, or 'form' to send it URL-encoded)
|
|
744
|
+
// `body` (request body; if an object or array, sent as JSON, otherwise sent as-is, unless
|
|
745
|
+
// the `send` option is set)
|
|
746
|
+
// `parse` (can be 'json` to always parse the response body as JSON, otherwise the response body is
|
|
747
|
+
// parsed as JSON only if the content-type is application/json)
|
|
748
|
+
// `headers` (an object containing header names and values)
|
|
749
|
+
// `fullResponse` (if true, return an object with `status`, `headers` and `body`
|
|
750
|
+
// properties, rather than returning the body directly; the individual `headers` are canonicalized
|
|
751
|
+
// to lowercase names. If a header appears multiple times an array is returned for it)
|
|
752
|
+
//
|
|
753
|
+
// If the status code is >= 400 an error is thrown. The error object will be
|
|
754
|
+
// similar to a `fullResponse` object, with a `status` property.
|
|
755
|
+
//
|
|
756
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
757
|
+
// the apostrophe site itself.
|
|
758
|
+
|
|
759
|
+
async post(url, options) {
|
|
760
|
+
return self.remote('POST', url, options);
|
|
761
|
+
},
|
|
762
|
+
|
|
763
|
+
// Send a DELETE request to the given URL and return the response body. Accepts the following options:
|
|
764
|
+
//
|
|
765
|
+
// `qs` (pass object; builds a query string with qs)
|
|
766
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
767
|
+
// `send` (can be 'json' to always send `options.body` JSON encoded, or 'form' to send it URL-encoded)
|
|
768
|
+
// `body` (request body; if an object or array, sent as JSON, otherwise sent as-is, unless
|
|
769
|
+
// the `send` option is set)
|
|
770
|
+
// `parse` (can be 'json` to always parse the response body as JSON, otherwise the response body is
|
|
771
|
+
// parsed as JSON only if the content-type is application/json)
|
|
772
|
+
// `headers` (an object containing header names and values)
|
|
773
|
+
// `fullResponse` (if true, return an object with `status`, `headers` and `body`
|
|
774
|
+
// properties, rather than returning the body directly; the individual `headers` are canonicalized
|
|
775
|
+
// to lowercase names. If a header appears multiple times an array is returned for it)
|
|
776
|
+
//
|
|
777
|
+
// If the status code is >= 400 an error is thrown. The error object will be
|
|
778
|
+
// similar to a `fullResponse` object, with a `status` property.
|
|
779
|
+
//
|
|
780
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
781
|
+
// the apostrophe site itself.
|
|
782
|
+
|
|
783
|
+
async delete(url, options) {
|
|
784
|
+
return self.remote('DELETE', url, options);
|
|
785
|
+
},
|
|
786
|
+
|
|
787
|
+
// Send a PUT request to the given URL and return the response body. Accepts the following options:
|
|
788
|
+
//
|
|
789
|
+
// `qs` (pass object; builds a query string with qs)
|
|
790
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
791
|
+
// `send` (can be 'json' to always send `options.body` JSON encoded, or 'form' to send it URL-encoded)
|
|
792
|
+
// `body` (request body; if an object or array, sent as JSON, otherwise sent as-is, unless
|
|
793
|
+
// the `send` option is set)
|
|
794
|
+
// `parse` (can be 'json` to always parse the response body as JSON, otherwise the response body is
|
|
795
|
+
// parsed as JSON only if the content-type is application/json)
|
|
796
|
+
// `headers` (an object containing header names and values)
|
|
797
|
+
// `fullResponse` (if true, return an object with `status`, `headers` and `body`
|
|
798
|
+
// properties, rather than returning the body directly; the individual `headers` are canonicalized
|
|
799
|
+
// to lowercase names. If a header appears multiple times an array is returned for it)
|
|
800
|
+
//
|
|
801
|
+
// If the status code is >= 400 an error is thrown. The error object will be
|
|
802
|
+
// similar to a `fullResponse` object, with a `status` property.
|
|
803
|
+
//
|
|
804
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
805
|
+
// the apostrophe site itself.
|
|
806
|
+
|
|
807
|
+
async put(url, options) {
|
|
808
|
+
return self.remote('PUT', url, options);
|
|
809
|
+
},
|
|
810
|
+
|
|
811
|
+
// Send a PATCH request to the given URL and return the response body. Accepts the following options:
|
|
812
|
+
//
|
|
813
|
+
// `qs` (pass object; builds a query string with qs)
|
|
814
|
+
// `jar` (pass in a cookie jar obtained from apos.http.jar())
|
|
815
|
+
// `send` (can be 'json' to always send `options.body` JSON encoded, or 'form' to send it URL-encoded)
|
|
816
|
+
// `body` (request body; if an object or array, sent as JSON, otherwise sent as-is, unless
|
|
817
|
+
// the `send` option is set)
|
|
818
|
+
// `parse` (can be 'json` to always parse the response body as JSON, otherwise the response body is
|
|
819
|
+
// parsed as JSON only if the content-type is application/json)
|
|
820
|
+
// `headers` (an object containing header names and values)
|
|
821
|
+
// `fullResponse` (if true, return an object with `status`, `headers` and `body`
|
|
822
|
+
// properties, rather than returning the body directly; the individual `headers` are canonicalized
|
|
823
|
+
// to lowercase names. If a header appears multiple times an array is returned for it)
|
|
824
|
+
//
|
|
825
|
+
// If the status code is >= 400 an error is thrown. The error object will be
|
|
826
|
+
// similar to a `fullResponse` object, with a `status` property.
|
|
827
|
+
//
|
|
828
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
829
|
+
// the apostrophe site itself.
|
|
830
|
+
|
|
831
|
+
async patch(url, options) {
|
|
832
|
+
return self.remote('PATCH', url, options);
|
|
833
|
+
},
|
|
834
|
+
|
|
835
|
+
// Invoke a remote HTTP API with the named method. Use .get, .post, etc.
|
|
836
|
+
// This is an implementation method invoked by these
|
|
837
|
+
//
|
|
838
|
+
// If the URL is site-relative (starts with /) it will be requested from
|
|
839
|
+
// the apostrophe site itself.
|
|
840
|
+
|
|
841
|
+
async remote(method, url, options) {
|
|
842
|
+
let awaitedBody = false;
|
|
843
|
+
if (!options) {
|
|
844
|
+
options = {};
|
|
845
|
+
}
|
|
846
|
+
options = {
|
|
847
|
+
...options,
|
|
848
|
+
method
|
|
849
|
+
};
|
|
850
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (url.match(/^\//)) {
|
|
851
|
+
url = `${self.getBase()}${url}`;
|
|
852
|
+
}
|
|
853
|
+
if (options.qs) {
|
|
854
|
+
url += `?${qs.stringify(options.qs)}`;
|
|
855
|
+
}
|
|
856
|
+
if (options.jar) {
|
|
857
|
+
let cookies = options.jar.getCookiesSync(url);
|
|
858
|
+
cookies = cookies || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
859
|
+
options.headers = options.headers || {};
|
|
860
|
+
options.headers.cookie = cookies.join('; ');
|
|
861
|
+
}
|
|
862
|
+
if (options.body && options.body.constructor && (options.body.constructor.name === 'FormData')) {
|
|
863
|
+
// If we don't do this multiparty will not parse it properly
|
|
864
|
+
const contentLength = await require('util').promisify((callback) => {
|
|
865
|
+
return options.body.getLength(callback);
|
|
866
|
+
})();
|
|
867
|
+
options.headers = options.headers || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
868
|
+
options.headers['Content-Length'] = contentLength;
|
|
869
|
+
// node-fetch will set the Content-Type
|
|
870
|
+
} else if (((options.body != null) && ((typeof options.body) === 'object')) || (options.send === 'json')) {
|
|
871
|
+
options.body = JSON.stringify(options.body);
|
|
872
|
+
options.headers = options.headers || {};
|
|
873
|
+
options.headers['Content-Type'] = 'application/json';
|
|
874
|
+
} else <span class="missing-if-branch" title="if path not taken" >I</span>if ((options.body !== null) && (options.send === 'form')) {
|
|
875
|
+
<span class="cstat-no" title="statement not covered" > options.body = qs.stringify(options.body);</span>
|
|
876
|
+
<span class="cstat-no" title="statement not covered" > options.headers = options.headers || {};</span>
|
|
877
|
+
<span class="cstat-no" title="statement not covered" > options.headers['Content-Type'] = 'application/x-www-form-urlencoded';</span>
|
|
878
|
+
}
|
|
879
|
+
const res = await fetch(url, options);
|
|
880
|
+
let body;
|
|
881
|
+
if (options.jar) {
|
|
882
|
+
// This is node-fetch specific, browsers limit what JS can see about this header
|
|
883
|
+
(res.headers.raw()['set-cookie'] || []).forEach(cookie => {
|
|
884
|
+
options.jar.setCookieSync(cookie, url);
|
|
885
|
+
});
|
|
886
|
+
}
|
|
887
|
+
awaitedBody = true;
|
|
888
|
+
body = await getBody();
|
|
889
|
+
if (res.status >= 400) {
|
|
890
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!awaitedBody) {
|
|
891
|
+
<span class="cstat-no" title="statement not covered" > body = await getBody();</span>
|
|
892
|
+
}
|
|
893
|
+
const error = new Error(`HTTP error ${res.status}`);
|
|
894
|
+
Object.assign(error, fullResponse());
|
|
895
|
+
throw error;
|
|
896
|
+
}
|
|
897
|
+
if (options.fullResponse) {
|
|
898
|
+
return fullResponse();
|
|
899
|
+
}
|
|
900
|
+
return body;
|
|
901
|
+
function fullResponse() {
|
|
902
|
+
const headers = {};
|
|
903
|
+
res.headers.forEach((value, name) => {
|
|
904
|
+
// Optional support for fetching arrays of headers with the same name
|
|
905
|
+
// could be added at a later time if anyone really cares. Usually
|
|
906
|
+
// just a source of bugs
|
|
907
|
+
headers[name] = value;
|
|
908
|
+
});
|
|
909
|
+
return {
|
|
910
|
+
status: res.status,
|
|
911
|
+
headers,
|
|
912
|
+
body
|
|
913
|
+
};
|
|
914
|
+
}
|
|
915
|
+
async function getBody() {
|
|
916
|
+
let result = await res.text();
|
|
917
|
+
const contentType = (res.headers.get('content-type') || '').replace(/;.*$/, '');
|
|
918
|
+
if ((contentType === 'application/json') || (options.parse === 'json')) {
|
|
919
|
+
result = JSON.parse(result);
|
|
920
|
+
}
|
|
921
|
+
return result;
|
|
922
|
+
}
|
|
923
|
+
},
|
|
924
|
+
|
|
925
|
+
// Returns a cookie jar compatible
|
|
926
|
+
// with the `jar` option to `get`, `post`, etc. and
|
|
927
|
+
// the `getCookie` method (below). The use of other cookie
|
|
928
|
+
// stores is not recommended.
|
|
929
|
+
|
|
930
|
+
jar() {
|
|
931
|
+
return new tough.CookieJar();
|
|
932
|
+
},
|
|
933
|
+
|
|
934
|
+
// Given a cookie jar received from `apos.http.jar()` and a context URL, return the current value for
|
|
935
|
+
// the given cookie name, or undefined if there is none set
|
|
936
|
+
|
|
937
|
+
<span class="fstat-no" title="function not covered" > ge</span>tCookie(jar, url, name) {
|
|
938
|
+
<span class="cstat-no" title="statement not covered" > if (url.match(/^\//)) {</span>
|
|
939
|
+
<span class="cstat-no" title="statement not covered" > url = `${self.getBase()}${url}`;</span>
|
|
940
|
+
}
|
|
941
|
+
const cookies = <span class="cstat-no" title="statement not covered" >jar.getCookiesSync(url);</span>
|
|
942
|
+
<span class="cstat-no" title="statement not covered" > for (const cookie of cookies) {</span>
|
|
943
|
+
<span class="cstat-no" title="statement not covered" > if (cookie.key === name) {</span>
|
|
944
|
+
<span class="cstat-no" title="statement not covered" > return cookie.value;</span>
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
},
|
|
948
|
+
|
|
949
|
+
getBase() {
|
|
950
|
+
const server = self.apos.modules['@apostrophecms/express'].server;
|
|
951
|
+
return `http://${escapeHost(server.address().address)}:${server.address().port}`;
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
};
|
|
955
|
+
}
|
|
956
|
+
};
|
|
957
|
+
</pre></td></tr></table></pre>
|
|
958
|
+
|
|
959
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
960
|
+
</div><!-- /wrapper -->
|
|
961
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
962
|
+
Code coverage generated by
|
|
963
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
964
|
+
at Wed Jun 08 2022 11:06:49 GMT+0200 (Central European Summer Time)
|
|
965
|
+
</div>
|
|
966
|
+
<script src="../../../../prettify.js"></script>
|
|
967
|
+
<script>
|
|
968
|
+
window.onload = function () {
|
|
969
|
+
prettyPrint();
|
|
970
|
+
};
|
|
971
|
+
</script>
|
|
972
|
+
<script src="../../../../sorter.js"></script>
|
|
973
|
+
<script src="../../../../block-navigation.js"></script>
|
|
974
|
+
</body>
|
|
975
|
+
</html>
|
|
976
|
+
|