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.
Files changed (195) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/modules/apostrophe-caches/index.js +23 -1
  3. package/lib/modules/apostrophe-soft-redirects/index.js +21 -14
  4. package/package.json +1 -1
  5. package/test/caches.js +29 -0
  6. package/test/soft-redirects.js +16 -3
  7. package/.nyc_output/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
  8. package/.nyc_output/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
  9. package/.nyc_output/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
  10. package/.nyc_output/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
  11. package/.nyc_output/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
  12. package/.nyc_output/processinfo/02d8fb44-f6bc-4ab4-8f47-22c7a42b887d.json +0 -1
  13. package/.nyc_output/processinfo/14b3f5f0-7e4e-461b-a7d9-4b735f510bd7.json +0 -1
  14. package/.nyc_output/processinfo/99acae99-becc-463d-ba35-9333f88d2694.json +0 -1
  15. package/.nyc_output/processinfo/d071f9e0-3b11-44e6-9817-69f184dd064d.json +0 -1
  16. package/.nyc_output/processinfo/ed000bec-7ff7-49bf-a109-d17bfe883433.json +0 -1
  17. package/.nyc_output/processinfo/index.json +0 -1
  18. package/coverage/a3/defaults.js.html +0 -253
  19. package/coverage/a3/index.html +0 -131
  20. package/coverage/a3/index.js.html +0 -2338
  21. package/coverage/a3/lib/escape-host.js.html +0 -109
  22. package/coverage/a3/lib/index.html +0 -176
  23. package/coverage/a3/lib/mongodb-connect.js.html +0 -250
  24. package/coverage/a3/lib/moog-require.js.html +0 -790
  25. package/coverage/a3/lib/moog.js.html +0 -1711
  26. package/coverage/a3/lib/opentelemetry.js.html +0 -517
  27. package/coverage/a3/modules/@apostrophecms/admin-bar/index.html +0 -116
  28. package/coverage/a3/modules/@apostrophecms/admin-bar/index.js.html +0 -931
  29. package/coverage/a3/modules/@apostrophecms/any-doc-type/index.html +0 -116
  30. package/coverage/a3/modules/@apostrophecms/any-doc-type/index.js.html +0 -115
  31. package/coverage/a3/modules/@apostrophecms/any-page-type/index.html +0 -116
  32. package/coverage/a3/modules/@apostrophecms/any-page-type/index.js.html +0 -1105
  33. package/coverage/a3/modules/@apostrophecms/archive-page/index.html +0 -116
  34. package/coverage/a3/modules/@apostrophecms/archive-page/index.js.html +0 -97
  35. package/coverage/a3/modules/@apostrophecms/area/index.html +0 -116
  36. package/coverage/a3/modules/@apostrophecms/area/index.js.html +0 -2104
  37. package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/area.js.html +0 -469
  38. package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/index.html +0 -131
  39. package/coverage/a3/modules/@apostrophecms/area/lib/custom-tags/widget.js.html +0 -286
  40. package/coverage/a3/modules/@apostrophecms/asset/index.html +0 -116
  41. package/coverage/a3/modules/@apostrophecms/asset/index.js.html +0 -3982
  42. package/coverage/a3/modules/@apostrophecms/asset/lib/globalIcons.js.html +0 -346
  43. package/coverage/a3/modules/@apostrophecms/asset/lib/index.html +0 -116
  44. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/index.html +0 -131
  45. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js.html +0 -289
  46. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/apos/webpack.vue.js.html +0 -148
  47. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/index.html +0 -116
  48. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/index.html +0 -131
  49. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.es5.js.html +0 -184
  50. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js.html +0 -238
  51. package/coverage/a3/modules/@apostrophecms/asset/lib/webpack/utils.js.html +0 -958
  52. package/coverage/a3/modules/@apostrophecms/attachment/index.html +0 -116
  53. package/coverage/a3/modules/@apostrophecms/attachment/index.js.html +0 -3676
  54. package/coverage/a3/modules/@apostrophecms/attachment/lib/index.html +0 -116
  55. package/coverage/a3/modules/@apostrophecms/attachment/lib/legacy-migrations.js.html +0 -205
  56. package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/index.html +0 -116
  57. package/coverage/a3/modules/@apostrophecms/attachment/lib/tasks/rescale.js.html +0 -328
  58. package/coverage/a3/modules/@apostrophecms/busy/index.html +0 -116
  59. package/coverage/a3/modules/@apostrophecms/busy/index.js.html +0 -145
  60. package/coverage/a3/modules/@apostrophecms/cache/index.html +0 -116
  61. package/coverage/a3/modules/@apostrophecms/cache/index.js.html +0 -424
  62. package/coverage/a3/modules/@apostrophecms/db/index.html +0 -116
  63. package/coverage/a3/modules/@apostrophecms/db/index.js.html +0 -640
  64. package/coverage/a3/modules/@apostrophecms/doc/index.html +0 -116
  65. package/coverage/a3/modules/@apostrophecms/doc/index.js.html +0 -3937
  66. package/coverage/a3/modules/@apostrophecms/doc/lib/index.html +0 -116
  67. package/coverage/a3/modules/@apostrophecms/doc/lib/legacy-migrations.js.html +0 -622
  68. package/coverage/a3/modules/@apostrophecms/doc-type/index.html +0 -116
  69. package/coverage/a3/modules/@apostrophecms/doc-type/index.js.html +0 -8638
  70. package/coverage/a3/modules/@apostrophecms/doc-type/lib/autocomplete.js.html +0 -319
  71. package/coverage/a3/modules/@apostrophecms/doc-type/lib/index.html +0 -116
  72. package/coverage/a3/modules/@apostrophecms/email/index.html +0 -116
  73. package/coverage/a3/modules/@apostrophecms/email/index.js.html +0 -301
  74. package/coverage/a3/modules/@apostrophecms/error/index.html +0 -116
  75. package/coverage/a3/modules/@apostrophecms/error/index.js.html +0 -202
  76. package/coverage/a3/modules/@apostrophecms/express/index.html +0 -116
  77. package/coverage/a3/modules/@apostrophecms/express/index.js.html +0 -2116
  78. package/coverage/a3/modules/@apostrophecms/file/index.html +0 -116
  79. package/coverage/a3/modules/@apostrophecms/file/index.js.html +0 -367
  80. package/coverage/a3/modules/@apostrophecms/file-tag/index.html +0 -116
  81. package/coverage/a3/modules/@apostrophecms/file-tag/index.js.html +0 -127
  82. package/coverage/a3/modules/@apostrophecms/global/index.html +0 -116
  83. package/coverage/a3/modules/@apostrophecms/global/index.js.html +0 -535
  84. package/coverage/a3/modules/@apostrophecms/home-page/index.html +0 -116
  85. package/coverage/a3/modules/@apostrophecms/home-page/index.js.html +0 -94
  86. package/coverage/a3/modules/@apostrophecms/html-widget/index.html +0 -116
  87. package/coverage/a3/modules/@apostrophecms/html-widget/index.js.html +0 -271
  88. package/coverage/a3/modules/@apostrophecms/http/index.html +0 -116
  89. package/coverage/a3/modules/@apostrophecms/http/index.js.html +0 -976
  90. package/coverage/a3/modules/@apostrophecms/i18n/index.html +0 -116
  91. package/coverage/a3/modules/@apostrophecms/i18n/index.js.html +0 -2083
  92. package/coverage/a3/modules/@apostrophecms/image/index.html +0 -116
  93. package/coverage/a3/modules/@apostrophecms/image/index.js.html +0 -1486
  94. package/coverage/a3/modules/@apostrophecms/image-tag/index.html +0 -116
  95. package/coverage/a3/modules/@apostrophecms/image-tag/index.js.html +0 -127
  96. package/coverage/a3/modules/@apostrophecms/image-widget/index.html +0 -116
  97. package/coverage/a3/modules/@apostrophecms/image-widget/index.js.html +0 -145
  98. package/coverage/a3/modules/@apostrophecms/job/index.html +0 -116
  99. package/coverage/a3/modules/@apostrophecms/job/index.js.html +0 -1321
  100. package/coverage/a3/modules/@apostrophecms/launder/index.html +0 -116
  101. package/coverage/a3/modules/@apostrophecms/launder/index.js.html +0 -124
  102. package/coverage/a3/modules/@apostrophecms/lock/index.html +0 -116
  103. package/coverage/a3/modules/@apostrophecms/lock/index.js.html +0 -676
  104. package/coverage/a3/modules/@apostrophecms/login/index.html +0 -116
  105. package/coverage/a3/modules/@apostrophecms/login/index.js.html +0 -2617
  106. package/coverage/a3/modules/@apostrophecms/migration/index.html +0 -116
  107. package/coverage/a3/modules/@apostrophecms/migration/index.js.html +0 -970
  108. package/coverage/a3/modules/@apostrophecms/modal/index.html +0 -116
  109. package/coverage/a3/modules/@apostrophecms/modal/index.js.html +0 -193
  110. package/coverage/a3/modules/@apostrophecms/module/index.html +0 -116
  111. package/coverage/a3/modules/@apostrophecms/module/index.js.html +0 -2500
  112. package/coverage/a3/modules/@apostrophecms/module/lib/events.js.html +0 -547
  113. package/coverage/a3/modules/@apostrophecms/module/lib/index.html +0 -116
  114. package/coverage/a3/modules/@apostrophecms/notification/index.html +0 -116
  115. package/coverage/a3/modules/@apostrophecms/notification/index.js.html +0 -1315
  116. package/coverage/a3/modules/@apostrophecms/oembed/index.html +0 -116
  117. package/coverage/a3/modules/@apostrophecms/oembed/index.js.html +0 -781
  118. package/coverage/a3/modules/@apostrophecms/oembed/lib/index.html +0 -161
  119. package/coverage/a3/modules/@apostrophecms/oembed/lib/infogram.js.html +0 -178
  120. package/coverage/a3/modules/@apostrophecms/oembed/lib/vimeo.js.html +0 -124
  121. package/coverage/a3/modules/@apostrophecms/oembed/lib/wufoo.js.html +0 -256
  122. package/coverage/a3/modules/@apostrophecms/oembed/lib/youtube.js.html +0 -322
  123. package/coverage/a3/modules/@apostrophecms/oembed-field/index.html +0 -116
  124. package/coverage/a3/modules/@apostrophecms/oembed-field/index.js.html +0 -268
  125. package/coverage/a3/modules/@apostrophecms/page/index.html +0 -116
  126. package/coverage/a3/modules/@apostrophecms/page/index.js.html +0 -6955
  127. package/coverage/a3/modules/@apostrophecms/page/lib/index.html +0 -116
  128. package/coverage/a3/modules/@apostrophecms/page/lib/legacy-migrations.js.html +0 -568
  129. package/coverage/a3/modules/@apostrophecms/page-type/index.html +0 -116
  130. package/coverage/a3/modules/@apostrophecms/page-type/index.js.html +0 -1501
  131. package/coverage/a3/modules/@apostrophecms/pager/index.html +0 -116
  132. package/coverage/a3/modules/@apostrophecms/pager/index.js.html +0 -232
  133. package/coverage/a3/modules/@apostrophecms/permission/index.html +0 -116
  134. package/coverage/a3/modules/@apostrophecms/permission/index.js.html +0 -1057
  135. package/coverage/a3/modules/@apostrophecms/permission/lib/index.html +0 -116
  136. package/coverage/a3/modules/@apostrophecms/permission/lib/legacy-migrations.js.html +0 -160
  137. package/coverage/a3/modules/@apostrophecms/piece-page-type/index.html +0 -116
  138. package/coverage/a3/modules/@apostrophecms/piece-page-type/index.js.html +0 -1051
  139. package/coverage/a3/modules/@apostrophecms/piece-type/index.html +0 -116
  140. package/coverage/a3/modules/@apostrophecms/piece-type/index.js.html +0 -3103
  141. package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.html +0 -116
  142. package/coverage/a3/modules/@apostrophecms/polymorphic-type/index.js.html +0 -157
  143. package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.html +0 -116
  144. package/coverage/a3/modules/@apostrophecms/rich-text-widget/index.js.html +0 -1363
  145. package/coverage/a3/modules/@apostrophecms/schema/index.html +0 -116
  146. package/coverage/a3/modules/@apostrophecms/schema/index.js.html +0 -4603
  147. package/coverage/a3/modules/@apostrophecms/schema/lib/addFieldTypes.js.html +0 -3502
  148. package/coverage/a3/modules/@apostrophecms/schema/lib/index.html +0 -131
  149. package/coverage/a3/modules/@apostrophecms/schema/lib/joinr.js.html +0 -703
  150. package/coverage/a3/modules/@apostrophecms/search/index.html +0 -116
  151. package/coverage/a3/modules/@apostrophecms/search/index.js.html +0 -1222
  152. package/coverage/a3/modules/@apostrophecms/soft-redirect/index.html +0 -116
  153. package/coverage/a3/modules/@apostrophecms/soft-redirect/index.js.html +0 -343
  154. package/coverage/a3/modules/@apostrophecms/submitted-draft/index.html +0 -116
  155. package/coverage/a3/modules/@apostrophecms/submitted-draft/index.js.html +0 -595
  156. package/coverage/a3/modules/@apostrophecms/task/index.html +0 -116
  157. package/coverage/a3/modules/@apostrophecms/task/index.js.html +0 -1147
  158. package/coverage/a3/modules/@apostrophecms/template/index.html +0 -116
  159. package/coverage/a3/modules/@apostrophecms/template/index.js.html +0 -2731
  160. package/coverage/a3/modules/@apostrophecms/template/lib/bundlesLoader.js.html +0 -559
  161. package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/component.js.html +0 -310
  162. package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/fragment.js.html +0 -325
  163. package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/index.html +0 -146
  164. package/coverage/a3/modules/@apostrophecms/template/lib/custom-tags/render.js.html +0 -490
  165. package/coverage/a3/modules/@apostrophecms/template/lib/index.html +0 -131
  166. package/coverage/a3/modules/@apostrophecms/template/lib/nunjucksLoader.js.html +0 -658
  167. package/coverage/a3/modules/@apostrophecms/ui/index.html +0 -116
  168. package/coverage/a3/modules/@apostrophecms/ui/index.js.html +0 -181
  169. package/coverage/a3/modules/@apostrophecms/uploadfs/index.html +0 -116
  170. package/coverage/a3/modules/@apostrophecms/uploadfs/index.js.html +0 -286
  171. package/coverage/a3/modules/@apostrophecms/url/index.html +0 -116
  172. package/coverage/a3/modules/@apostrophecms/url/index.js.html +0 -733
  173. package/coverage/a3/modules/@apostrophecms/user/index.html +0 -116
  174. package/coverage/a3/modules/@apostrophecms/user/index.js.html +0 -1684
  175. package/coverage/a3/modules/@apostrophecms/user/lib/index.html +0 -116
  176. package/coverage/a3/modules/@apostrophecms/user/lib/legacy-migrations.js.html +0 -157
  177. package/coverage/a3/modules/@apostrophecms/util/index.html +0 -116
  178. package/coverage/a3/modules/@apostrophecms/util/index.js.html +0 -3424
  179. package/coverage/a3/modules/@apostrophecms/util/lib/index.html +0 -116
  180. package/coverage/a3/modules/@apostrophecms/util/lib/logger.js.html +0 -319
  181. package/coverage/a3/modules/@apostrophecms/video-widget/index.html +0 -116
  182. package/coverage/a3/modules/@apostrophecms/video-widget/index.js.html +0 -178
  183. package/coverage/a3/modules/@apostrophecms/widget-type/index.html +0 -116
  184. package/coverage/a3/modules/@apostrophecms/widget-type/index.js.html +0 -1225
  185. package/coverage/a3/test-lib/index.html +0 -131
  186. package/coverage/a3/test-lib/test.js.html +0 -232
  187. package/coverage/a3/test-lib/util.js.html +0 -373
  188. package/coverage/base.css +0 -224
  189. package/coverage/block-navigation.js +0 -87
  190. package/coverage/favicon.png +0 -0
  191. package/coverage/index.html +0 -1256
  192. package/coverage/prettify.css +0 -1
  193. package/coverage/prettify.js +0 -2
  194. package/coverage/sort-arrow-sprite.png +0 -0
  195. package/coverage/sorter.js +0 -196
@@ -1,658 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for a3/modules/@apostrophecms/template/lib/nunjucksLoader.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/template/lib</a> nunjucksLoader.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">76.66% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>69/90</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">60.86% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>28/46</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>9/12</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">76.66% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>69/90</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 medium'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">1x</span>
269
- <span class="cline-any cline-yes">1x</span>
270
- <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">1x</span>
274
- <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-yes">50x</span>
276
- <span class="cline-any cline-yes">50x</span>
277
- <span class="cline-any cline-yes">50x</span>
278
- <span class="cline-any cline-yes">50x</span>
279
- <span class="cline-any cline-yes">50x</span>
280
- <span class="cline-any cline-yes">50x</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">50x</span>
283
- <span class="cline-any cline-yes">50x</span>
284
- <span class="cline-any cline-yes">50x</span>
285
- <span class="cline-any cline-yes">50x</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-yes">50x</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-no">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">50x</span>
294
- <span class="cline-any cline-yes">50x</span>
295
- <span class="cline-any cline-yes">262x</span>
296
- <span class="cline-any cline-yes">73x</span>
297
- <span class="cline-any cline-yes">73x</span>
298
- <span class="cline-any cline-yes">73x</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-no">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-yes">73x</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-no">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">50x</span>
320
- <span class="cline-any cline-yes">103x</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">50x</span>
324
- <span class="cline-any cline-yes">103x</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">43x</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-yes">60x</span>
330
- <span class="cline-any cline-yes">60x</span>
331
- <span class="cline-any cline-no">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">60x</span>
334
- <span class="cline-any cline-yes">60x</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-yes">50x</span>
338
- <span class="cline-any cline-yes">108x</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">108x</span>
345
- <span class="cline-any cline-yes">53x</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">108x</span>
349
- <span class="cline-any cline-yes">108x</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">108x</span>
353
- <span class="cline-any cline-yes">108x</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">108x</span>
357
- <span class="cline-any cline-no">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">108x</span>
361
- <span class="cline-any cline-yes">108x</span>
362
- <span class="cline-any cline-yes">162x</span>
363
- <span class="cline-any cline-yes">162x</span>
364
- <span class="cline-any cline-yes">162x</span>
365
- <span class="cline-any cline-yes">162x</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-no">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">162x</span>
384
- <span class="cline-any cline-yes">324x</span>
385
- <span class="cline-any cline-yes">324x</span>
386
- <span class="cline-any cline-yes">108x</span>
387
- <span class="cline-any cline-yes">108x</span>
388
- <span class="cline-any cline-yes">108x</span>
389
- <span class="cline-any cline-yes">108x</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-no">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">108x</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-yes">108x</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">108x</span>
405
- <span class="cline-any cline-yes">2x</span>
406
- <span class="cline-any cline-yes">2x</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">50x</span>
425
- <span class="cline-any cline-yes">100x</span>
426
- <span class="cline-any cline-yes">100x</span>
427
- <span class="cline-any cline-yes">100x</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">50x</span>
431
- <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-no">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-yes">50x</span>
441
- <span class="cline-any cline-yes">50x</span>
442
- <span class="cline-any cline-yes">73x</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">50x</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// This is a nunjucks filesystem loader that allows absolute paths,
449
- // and also allows templates in other modules to be accessed, for
450
- // instance:
451
- //
452
- // @apostrophecms/template:outerLayout.html
453
- //
454
- // Note that if @apostrophecms/template has a project-level override
455
- // of outerLayout.html, that will be loaded instead. This is
456
- // intentional.
457
- &nbsp;
458
- const fs = require('fs');
459
- const path = require('path');
460
- const _ = require('lodash');
461
- const { stripIndent } = require('common-tags');
462
- const chokidar = require('chokidar');
463
- &nbsp;
464
- module.exports = function(moduleName, searchPaths, noWatch, templates, options) {
465
- &nbsp;
466
- const self = this;
467
- self.watches = [];
468
- options = options || {};
469
- const extensions = options.extensions || [ 'njk', 'html' ];
470
- self.moduleName = moduleName;
471
- self.templates = templates;
472
- &nbsp;
473
- self.init = function(searchPaths, noWatch) {
474
- self.pathsToNames = {};
475
- <span class="missing-if-branch" title="else path not taken" >E</span>if (searchPaths) {
476
- searchPaths = Array.isArray(searchPaths) ? searchPaths : <span class="branch-1 cbranch-no" title="branch not covered" >[ searchPaths ];</span>
477
- // For windows, convert to forward slashes
478
- self.searchPaths = _.map(searchPaths, path.normalize);
479
- } else {
480
- <span class="cstat-no" title="statement not covered" > self.searchPaths = [];</span>
481
- }
482
- // Unless and until chokidar declares this a supported config,
483
- // no watching in WSL (it doesn't work without chokidar either)
484
- <span class="missing-if-branch" title="else path not taken" >E</span>if ((!noWatch) &amp;&amp; (!require('is-wsl'))) {
485
- _.each(self.searchPaths, function(p) {
486
- if (fs.existsSync(p)) {
487
- try {
488
- const watcher = chokidar.watch(p);
489
- watcher.on('change', <span class="fstat-no" title="function not covered" >(p</span>ath, stats) =&gt; {
490
- // Just blow the whole cache if anything is modified. Much simpler,
491
- // avoids several false negatives, and works well for a CMS in dev. -Tom
492
- <span class="cstat-no" title="statement not covered" > self.cache = {};</span>
493
- });
494
- self.watches.push(watcher);
495
- } catch (e) {
496
- <span class="cstat-no" title="statement not covered" > if (!self.firstWatchFailure) {</span>
497
- // Don't crash in broken environments (not sure if any are left thanks
498
- // to chokidar, but still a useful warning to have if it comes up)
499
- <span class="cstat-no" title="statement not covered" > self.firstWatchFailure = true;</span>
500
- <span class="cstat-no" title="statement not covered" > self.templates.apos.util.warn('WARNING: fs.watch does not work on this system. That is OK but you\n' +</span>
501
- 'will have to restart to see any template changes take effect.');
502
- }
503
- <span class="cstat-no" title="statement not covered" > self.templates.apos.util.error(e);</span>
504
- }
505
- }
506
- });
507
- }
508
- };
509
- &nbsp;
510
- self.isRelative = function(filename) {
511
- return true;
512
- };
513
- &nbsp;
514
- self.resolve = function(parentName, filename) {
515
- if (filename.match(/:/)) {
516
- // module-absolute
517
- return filename;
518
- }
519
- // relative to another module?
520
- const matches = parentName.split(/:/);
521
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!matches) {
522
- <span class="cstat-no" title="statement not covered" > return filename;</span>
523
- }
524
- const resolvedTo = matches[0] + ':' + filename;
525
- return resolvedTo;
526
- };
527
- &nbsp;
528
- self.getSource = function(name) {
529
- let fullpath = null;
530
- &nbsp;
531
- let matches;
532
- let i, j;
533
- let src;
534
- &nbsp;
535
- if (!name.match(/:/)) {
536
- name = self.moduleName + ':' + name;
537
- }
538
- &nbsp;
539
- matches = name.split(/:/);
540
- <span class="missing-if-branch" title="if path not taken" >I</span>if (matches.length !== 2) {
541
- <span class="cstat-no" title="statement not covered" > throw new Error('Bad template path: ' + name + ' (format is module-name:filename');</span>
542
- }
543
- const moduleName = matches[0];
544
- const modulePath = matches[1];
545
- &nbsp;
546
- // check if the module asked for exists
547
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!self.templates.apos.modules[moduleName]) {
548
- <span class="cstat-no" title="statement not covered" > throw new Error('Module doesn\'t exist: ' + moduleName);</span>
549
- }
550
- &nbsp;
551
- const dirs = self.templates.getViewFolders(self.templates.apos.modules[moduleName]);
552
- for (i = 0; (i &lt; dirs.length); i++) {
553
- fullpath = dirs[i] + '/' + modulePath;
554
- matches = fullpath.match(/\.([^/.]+)$/);
555
- <span class="missing-if-branch" title="else path not taken" >E</span>if (matches) {
556
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!_.includes(extensions, matches[1])) {
557
- // Custom extensions shouldn't fall back to njk/html,
558
- // that would not be bc. It's do or die for these
559
- <span class="cstat-no" title="statement not covered" > if (fs.existsSync(fullpath)) {</span>
560
- <span class="cstat-no" title="statement not covered" > self.pathsToNames[fullpath] = name;</span>
561
- <span class="cstat-no" title="statement not covered" > src = fs.readFileSync(fullpath, 'utf-8');</span>
562
- <span class="cstat-no" title="statement not covered" > lint(fullpath, src);</span>
563
- <span class="cstat-no" title="statement not covered" > return {</span>
564
- src: src,
565
- path: name
566
- };
567
- }
568
- <span class="cstat-no" title="statement not covered" > continue;</span>
569
- }
570
- }
571
- // Try all the configured extensions, regardless
572
- // of which of them was actually requested,
573
- // so that developers have a choice
574
- for (j = 0; (j &lt; extensions.length); j++) {
575
- fullpath = fullpath.replace(/\.[^/.]+$/, '.' + extensions[j]);
576
- if (fs.existsSync(fullpath)) {
577
- self.pathsToNames[fullpath] = name;
578
- src = fs.readFileSync(fullpath, 'utf-8');
579
- lint(fullpath, src);
580
- return {
581
- src: src,
582
- path: name
583
- };
584
- }
585
- }
586
- }
587
- <span class="cstat-no" title="statement not covered" > return null;</span>
588
- function lint(fullpath, src) {
589
- <span class="missing-if-branch" title="else path not taken" >E</span>if (process.env.NODE_ENV !== 'production') {
590
- // If we do this naively with a single regexp we'll inadvertently
591
- // span two macros to get at an innocent area in between them.
592
- // Check all the macro definitions individually
593
- const matcher = /{%\s*macro[\s\S]+{%\s*endmacro\s*%}/g;
594
- let matches;
595
- while ((matches = matcher.exec(src)) !== null) {
596
- const macro = matches[0];
597
- <span class="missing-if-branch" title="if path not taken" >I</span>if (macro.match(/{%\s*area|{%\s*component/)) {
598
- <span class="cstat-no" title="statement not covered" > self.templates.apos.util.warnDevOnce('async-in-macros',</span>
599
- stripIndent`The Nunjucks template:
600
- &nbsp;
601
- ${fullpath}
602
- &nbsp;
603
- attempts to use {% area %} or {% component %} inside {% macro %}.
604
- &nbsp;
605
- This will not work. Replace {% macro %}...{% endmacro %} with
606
- {% fragment %}...{% endfragment %}. Also replace every call to
607
- the macro with {% render fragmentName(arguments) %}.`
608
- );
609
- }
610
- }
611
- }
612
- }
613
- };
614
- &nbsp;
615
- self.on = function(name, func) {
616
- self.listeners = self.listeners || {};
617
- self.listeners[name] = self.listeners[name] || [];
618
- self.listeners[name].push(func);
619
- };
620
- &nbsp;
621
- self.emit = <span class="fstat-no" title="function not covered" >fu</span>nction(name /*, arg1, arg2, ... */) {
622
- const args = <span class="cstat-no" title="statement not covered" >Array.prototype.slice.call(arguments, 1);</span>
623
- &nbsp;
624
- <span class="cstat-no" title="statement not covered" > if (self.listeners &amp;&amp; self.listeners[name]) {</span>
625
- <span class="cstat-no" title="statement not covered" > _.each(self.listeners[name], <span class="fstat-no" title="function not covered" >fu</span>nction(listener) {</span>
626
- <span class="cstat-no" title="statement not covered" > listener.apply(null, args);</span>
627
- });
628
- }
629
- };
630
- &nbsp;
631
- self.destroy = async () =&gt; {
632
- for (const watch of self.watches) {
633
- await watch.close();
634
- }
635
- };
636
- &nbsp;
637
- self.init(searchPaths, noWatch);
638
- };
639
- &nbsp;</pre></td></tr></table></pre>
640
-
641
- <div class='push'></div><!-- for sticky footer -->
642
- </div><!-- /wrapper -->
643
- <div class='footer quiet pad2 space-top1 center small'>
644
- Code coverage generated by
645
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
646
- at Wed Jun 08 2022 11:06:49 GMT+0200 (Central European Summer Time)
647
- </div>
648
- <script src="../../../../../prettify.js"></script>
649
- <script>
650
- window.onload = function () {
651
- prettyPrint();
652
- };
653
- </script>
654
- <script src="../../../../../sorter.js"></script>
655
- <script src="../../../../../block-navigation.js"></script>
656
- </body>
657
- </html>
658
-