highmark-markdown 1.2.130 → 1.2.132

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 (261) hide show
  1. package/lib/attributeNames.js +38 -0
  2. package/lib/constants.js +86 -0
  3. package/lib/example/constants.js +38 -0
  4. package/lib/example/customEventTypes.js +46 -0
  5. package/lib/example/importer.js +100 -0
  6. package/lib/example/indexOptions.js +45 -0
  7. package/lib/example/view/button/page.js +54 -0
  8. package/lib/example/view/button/tab/css.js +33 -0
  9. package/lib/example/view/button/tab/html.js +33 -0
  10. package/lib/example/view/button/tab/markdown.js +33 -0
  11. package/lib/example/view/button/tab/markdownStyle.js +33 -0
  12. package/lib/example/view/button/tab/plainText.js +33 -0
  13. package/lib/example/view/button/tab/preview.js +33 -0
  14. package/lib/example/view/button/tab.js +56 -0
  15. package/lib/example/view/div/container/css.js +35 -0
  16. package/lib/example/view/div/container/html.js +37 -0
  17. package/lib/example/view/div/container/markdown.js +56 -0
  18. package/lib/example/view/div/container/markdownStyle.js +57 -0
  19. package/lib/example/view/div/container/plainText.js +35 -0
  20. package/lib/example/view/div/container/preview.js +41 -0
  21. package/lib/example/view/div/container.js +39 -0
  22. package/lib/example/view/div/html.js +37 -0
  23. package/lib/example/view/div/pageButtons.js +86 -0
  24. package/lib/example/view/div/preview.js +83 -0
  25. package/lib/example/view/div/sizeable/left.js +31 -0
  26. package/lib/example/view/div/tabButtons/left.js +61 -0
  27. package/lib/example/view/div/tabButtons/right.js +95 -0
  28. package/lib/example/view/div/tabButtons.js +34 -0
  29. package/lib/example/view/textarea/css.js +47 -0
  30. package/lib/example/view/textarea/markdown.js +47 -0
  31. package/lib/example/view/textarea/markdownStyle.js +47 -0
  32. package/lib/example/view/textarea/parseTree/css.js +39 -0
  33. package/lib/example/view/textarea/parseTree/html.js +39 -0
  34. package/lib/example/view/textarea/parseTree/markdown.js +36 -0
  35. package/lib/example/view/textarea/parseTree/markdownStyle.js +36 -0
  36. package/lib/example/view/textarea/parseTree.js +40 -0
  37. package/lib/example/view/textarea/plainText.js +50 -0
  38. package/lib/example/view/textarea.js +33 -0
  39. package/lib/example/view/xmp.js +49 -0
  40. package/lib/example/view.js +309 -0
  41. package/lib/example.js +26 -0
  42. package/lib/index/item.js +40 -0
  43. package/lib/index/list.js +55 -0
  44. package/lib/index/match.js +37 -0
  45. package/lib/index.js +147 -0
  46. package/lib/letters.js +41 -0
  47. package/lib/map/className.js +19 -0
  48. package/lib/map/node/css.js +76 -0
  49. package/lib/map/node/html.js +142 -0
  50. package/lib/map/nonTerminalNode/markdown.js +89 -0
  51. package/lib/map/nonTerminalNode/markdownStyle.js +63 -0
  52. package/lib/map/tagName.js +19 -0
  53. package/lib/markdown/bnf.js +362 -0
  54. package/lib/markdown/entries.js +81 -0
  55. package/lib/markdown/lexer.js +41 -0
  56. package/lib/markdown/parser.js +36 -0
  57. package/lib/markdownStyle/bnf.js +89 -0
  58. package/lib/markdownStyle/entries.js +53 -0
  59. package/lib/markdownStyle/lexer.js +41 -0
  60. package/lib/markdownStyle/parser.js +36 -0
  61. package/lib/mixins/node.js +145 -0
  62. package/lib/mixins/token.js +43 -0
  63. package/lib/node/css/amount.js +34 -0
  64. package/lib/node/css/argument.js +26 -0
  65. package/lib/node/css/arguments.js +32 -0
  66. package/lib/node/css/class.js +32 -0
  67. package/lib/node/css/colour.js +34 -0
  68. package/lib/node/css/content.js +30 -0
  69. package/lib/node/css/declaration.js +37 -0
  70. package/lib/node/css/identifier.js +34 -0
  71. package/lib/node/css/name.js +32 -0
  72. package/lib/node/css/pseudoClass.js +32 -0
  73. package/lib/node/css/ruleName.js +65 -0
  74. package/lib/node/css/ruleSet.js +65 -0
  75. package/lib/node/css/selector.js +26 -0
  76. package/lib/node/css/selectors.js +37 -0
  77. package/lib/node/css/selectorsList.js +40 -0
  78. package/lib/node/css/string.js +34 -0
  79. package/lib/node/css/target.js +26 -0
  80. package/lib/node/css/topmost.js +93 -0
  81. package/lib/node/css/value.js +31 -0
  82. package/lib/node/css/values.js +34 -0
  83. package/lib/node/css/verbatim.js +38 -0
  84. package/lib/node/css.js +89 -0
  85. package/lib/node/html/anchor/contents.js +26 -0
  86. package/lib/node/html/anchor/footnote.js +26 -0
  87. package/lib/node/html/anchor/index.js +26 -0
  88. package/lib/node/html/anchor.js +56 -0
  89. package/lib/node/html/container.js +43 -0
  90. package/lib/node/html/directive/contents.js +26 -0
  91. package/lib/node/html/directive/footnotes.js +26 -0
  92. package/lib/node/html/directive/index.js +26 -0
  93. package/lib/node/html/directive/pageNumber.js +26 -0
  94. package/lib/node/html/directive.js +41 -0
  95. package/lib/node/html/division.js +149 -0
  96. package/lib/node/html/error.js +59 -0
  97. package/lib/node/html/footnote.js +58 -0
  98. package/lib/node/html/heading/index.js +81 -0
  99. package/lib/node/html/heading/primary.js +30 -0
  100. package/lib/node/html/heading/quaternary.js +30 -0
  101. package/lib/node/html/heading/secondary.js +30 -0
  102. package/lib/node/html/heading/tertiary.js +30 -0
  103. package/lib/node/html/heading.js +56 -0
  104. package/lib/node/html/image.js +95 -0
  105. package/lib/node/html/item/contents.js +38 -0
  106. package/lib/node/html/item/footnote.js +39 -0
  107. package/lib/node/html/item/index.js +57 -0
  108. package/lib/node/html/item/ordered.js +41 -0
  109. package/lib/node/html/item/unordered.js +28 -0
  110. package/lib/node/html/line/block.js +33 -0
  111. package/lib/node/html/line.js +113 -0
  112. package/lib/node/html/link/contents.js +54 -0
  113. package/lib/node/html/link/email.js +111 -0
  114. package/lib/node/html/link/footnote.js +114 -0
  115. package/lib/node/html/link/hyper.js +111 -0
  116. package/lib/node/html/link/index.js +88 -0
  117. package/lib/node/html/list/contents.js +38 -0
  118. package/lib/node/html/list/footnotes.js +58 -0
  119. package/lib/node/html/list/index.js +38 -0
  120. package/lib/node/html/list/ordered.js +28 -0
  121. package/lib/node/html/list/unordered.js +28 -0
  122. package/lib/node/html/listing/block.js +55 -0
  123. package/lib/node/html/listing/inline.js +55 -0
  124. package/lib/node/html/pageNumber.js +86 -0
  125. package/lib/node/html/paragraph.js +28 -0
  126. package/lib/node/html/reference.js +28 -0
  127. package/lib/node/html/table.js +28 -0
  128. package/lib/node/html/tableBody.js +28 -0
  129. package/lib/node/html/tableBodyCell.js +28 -0
  130. package/lib/node/html/tableBodyRow.js +28 -0
  131. package/lib/node/html/tableHead.js +28 -0
  132. package/lib/node/html/tableHeadCell.js +28 -0
  133. package/lib/node/html/tableHeadRow.js +28 -0
  134. package/lib/node/html/text/block.js +28 -0
  135. package/lib/node/html/text/comma.js +39 -0
  136. package/lib/node/html/text/emphasised.js +32 -0
  137. package/lib/node/html/text/index.js +46 -0
  138. package/lib/node/html/text/inline.js +52 -0
  139. package/lib/node/html/text/plain.js +28 -0
  140. package/lib/node/html/text/strong.js +32 -0
  141. package/lib/node/html/text/stronglyEmphasised.js +87 -0
  142. package/lib/node/html/text/xml.js +34 -0
  143. package/lib/node/html/text.js +42 -0
  144. package/lib/node/html/topmost.js +125 -0
  145. package/lib/node/html/xmlElement/complex.js +35 -0
  146. package/lib/node/html/xmlElement/simple.js +34 -0
  147. package/lib/node/html/xmlElement.js +125 -0
  148. package/lib/node/html.js +282 -0
  149. package/lib/node/markdown/blockEnd.js +23 -0
  150. package/lib/node/markdown/blockStart.js +49 -0
  151. package/lib/node/markdown/className.js +30 -0
  152. package/lib/node/markdown/container.js +36 -0
  153. package/lib/node/markdown/directive/embed.js +60 -0
  154. package/lib/node/markdown/directive/include.js +59 -0
  155. package/lib/node/markdown/division.js +91 -0
  156. package/lib/node/markdown/document.js +62 -0
  157. package/lib/node/markdown/error.js +30 -0
  158. package/lib/node/markdown/footnote.js +30 -0
  159. package/lib/node/markdown/hyperlink.js +58 -0
  160. package/lib/node/markdown/image.js +30 -0
  161. package/lib/node/markdown/item/ordered.js +36 -0
  162. package/lib/node/markdown/languageName.js +30 -0
  163. package/lib/node/markdown/link/email.js +58 -0
  164. package/lib/node/markdown/link/footnote.js +32 -0
  165. package/lib/node/markdown/listng/block.js +37 -0
  166. package/lib/node/markdown/listng/inline.js +36 -0
  167. package/lib/node/markdown/path.js +30 -0
  168. package/lib/node/markdown/reference.js +36 -0
  169. package/lib/node/markdown/releaseName.js +30 -0
  170. package/lib/node/markdown/subDivision.js +53 -0
  171. package/lib/node/markdown/text/block.js +23 -0
  172. package/lib/node/markdown/text/plain.js +23 -0
  173. package/lib/node/markdown/text/xml.js +23 -0
  174. package/lib/node/markdown/text.js +66 -0
  175. package/lib/node/markdown/xmlAttribute.js +45 -0
  176. package/lib/node/markdown/xmlAttributeName.js +32 -0
  177. package/lib/node/markdown/xmlAttributeValue.js +31 -0
  178. package/lib/node/markdown/xmlElement/complex.js +23 -0
  179. package/lib/node/markdown/xmlElement/simple.js +23 -0
  180. package/lib/node/markdown/xmlElement.js +51 -0
  181. package/lib/node/markdown/xmlTag/complete.js +23 -0
  182. package/lib/node/markdown/xmlTag/end.js +35 -0
  183. package/lib/node/markdown/xmlTag/start.js +23 -0
  184. package/lib/node/markdown/xmlTag.js +57 -0
  185. package/lib/node/markdown/xmlTagName.js +32 -0
  186. package/lib/node/markdown.js +67 -0
  187. package/lib/node/markdownStyle/amount.js +31 -0
  188. package/lib/node/markdownStyle/argument.js +23 -0
  189. package/lib/node/markdownStyle/arguments.js +23 -0
  190. package/lib/node/markdownStyle/colour.js +30 -0
  191. package/lib/node/markdownStyle/content.js +39 -0
  192. package/lib/node/markdownStyle/declaration.js +23 -0
  193. package/lib/node/markdownStyle/document.js +23 -0
  194. package/lib/node/markdownStyle/error.js +23 -0
  195. package/lib/node/markdownStyle/identifier.js +31 -0
  196. package/lib/node/markdownStyle/name.js +23 -0
  197. package/lib/node/markdownStyle/nonsense.js +23 -0
  198. package/lib/node/markdownStyle/pseudoClass.js +23 -0
  199. package/lib/node/markdownStyle/ruleName.js +30 -0
  200. package/lib/node/markdownStyle/ruleSet.js +23 -0
  201. package/lib/node/markdownStyle/selector.js +23 -0
  202. package/lib/node/markdownStyle/selectors.js +23 -0
  203. package/lib/node/markdownStyle/selectorsList.js +23 -0
  204. package/lib/node/markdownStyle/string.js +30 -0
  205. package/lib/node/markdownStyle/value.js +23 -0
  206. package/lib/node/markdownStyle/values.js +23 -0
  207. package/lib/node/markdownStyle/verbatim.js +23 -0
  208. package/lib/node/markdownStyle.js +36 -0
  209. package/lib/prepends.js +26 -0
  210. package/lib/queries/markdown.js +20 -0
  211. package/lib/queries/markdownStyle.js +20 -0
  212. package/lib/ruleNames/markdown.js +435 -0
  213. package/lib/ruleNames/markdownStyle.js +135 -0
  214. package/lib/style/defaultMarkdown.js +258 -0
  215. package/lib/style/font.js +65 -0
  216. package/lib/styleElement/markdown/default.js +36 -0
  217. package/lib/styleElement/markdown.js +86 -0
  218. package/lib/styleElement.js +56 -0
  219. package/lib/tokenTypes.js +110 -0
  220. package/lib/transform/css/ruleSet.js +33 -0
  221. package/lib/transform/css/selectors.js +35 -0
  222. package/lib/transform/css/selectorsList.js +51 -0
  223. package/lib/transform/css.js +57 -0
  224. package/lib/transform/html/anchor/index.js +29 -0
  225. package/lib/transform/html/division.js +36 -0
  226. package/lib/transform/html/footnote.js +43 -0
  227. package/lib/transform/html/heading/index.js +25 -0
  228. package/lib/transform/html/index.js +64 -0
  229. package/lib/transform/html/item/contents.js +42 -0
  230. package/lib/transform/html/item/footnote.js +29 -0
  231. package/lib/transform/html/item/index.js +29 -0
  232. package/lib/transform/html/line.js +28 -0
  233. package/lib/transform/html/link/contents.js +39 -0
  234. package/lib/transform/html/link/footnote.js +54 -0
  235. package/lib/transform/html/list/contents.js +66 -0
  236. package/lib/transform/html/list/footnotes.js +38 -0
  237. package/lib/transform/html/list/index.js +34 -0
  238. package/lib/transform/html/pageNumber.js +33 -0
  239. package/lib/transform/html.js +44 -0
  240. package/lib/transform/markdown/directive/embed.js +28 -0
  241. package/lib/transform/markdown/directive/ignore.js +24 -0
  242. package/lib/transform/markdown/directive/include.js +34 -0
  243. package/lib/transform/markdown/subDivision.js +24 -0
  244. package/lib/transform/markdown.js +21 -0
  245. package/lib/utilities/contents.js +101 -0
  246. package/lib/utilities/css.js +53 -0
  247. package/lib/utilities/dom.js +58 -0
  248. package/lib/utilities/element.js +26 -0
  249. package/lib/utilities/entities.js +17 -0
  250. package/lib/utilities/entries.js +24 -0
  251. package/lib/utilities/grammar.js +160 -0
  252. package/lib/utilities/html.js +86 -0
  253. package/lib/utilities/index.js +250 -0
  254. package/lib/utilities/jsx.js +59 -0
  255. package/lib/utilities/markdown.js +61 -0
  256. package/lib/utilities/markdownStyle.js +13 -0
  257. package/lib/utilities/object.js +65 -0
  258. package/lib/utilities/query.js +64 -0
  259. package/lib/utilities/string.js +51 -0
  260. package/lib/utilities/stringLiteral.js +16 -0
  261. package/package.json +6 -6
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes;
9
+ }
10
+ });
11
+ const _occamdom = require("occam-dom");
12
+ const _necessary = require("necessary");
13
+ const _match = /*#__PURE__*/ _interop_require_default(require("../index/match"));
14
+ const _object = require("../utilities/object");
15
+ const _constants = require("../constants");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ const { compress } = _necessary.arrayUtilities, { isLessThan, isAncestorOf } = _occamdom.nodeUtilities;
22
+ function indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
23
+ const indexMap = createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context);
24
+ removeIgnoredWords(indexMap, context);
25
+ adjustMixedPlurals(indexMap, context);
26
+ adjustPluralPlurals(indexMap, context);
27
+ adjustSingularPlurals(indexMap, context);
28
+ adjustProperNouns(indexMap, context);
29
+ adjustAcronyms(indexMap, context);
30
+ compressPageNumbers(indexMap);
31
+ return indexMap;
32
+ }
33
+ function createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
34
+ const indexMap = {};
35
+ const { phrases = [] } = context, indexMatches = phrases.map((phrase)=>{
36
+ const indexMatch = _match.default.fromPhrase(phrase);
37
+ return indexMatch;
38
+ });
39
+ divisionHTMLNodes.forEach((divisionHTMLNode)=>{
40
+ const divisionHTMLNodeLessThanIndexDirectiveHTMLNode = isLessThan(divisionHTMLNode, indexDirectiveHTMLNode);
41
+ if (divisionHTMLNodeLessThanIndexDirectiveHTMLNode) {
42
+ const divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode = isAncestorOf(divisionHTMLNode, indexDirectiveHTMLNode);
43
+ if (!divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode) {
44
+ const pageNumber = divisionHTMLNode.pageNumber(context);
45
+ if (pageNumber !== null) {
46
+ const plainText = divisionHTMLNode.asPlainText(context), wordsOrPhrases = wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches);
47
+ wordsOrPhrases.forEach((wordOrPhrase)=>{
48
+ const pageNumbers = indexMap.hasOwnProperty(wordOrPhrase) ? indexMap[wordOrPhrase] : [];
49
+ indexMap[wordOrPhrase] = pageNumbers;
50
+ pageNumbers.push(pageNumber);
51
+ });
52
+ }
53
+ }
54
+ }
55
+ });
56
+ return indexMap;
57
+ }
58
+ function wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches) {
59
+ let wordsOrPhrases;
60
+ plainText = preparePlainText(plainText); ///
61
+ indexMatches.forEach((indexMatch)=>{
62
+ plainText = indexMatch.replace(plainText);
63
+ });
64
+ wordsOrPhrases = plainText.split(_constants.SINGLE_SPACE);
65
+ wordsOrPhrases = wordsOrPhrases.map((wordOrPhrase)=>{
66
+ wordOrPhrase = _match.default.revert(wordOrPhrase); ///
67
+ return wordOrPhrase;
68
+ });
69
+ return wordsOrPhrases;
70
+ }
71
+ function compressPageNumbers(indexMap) {
72
+ (0, _object.mapValues)(indexMap, (wordOrPhrase, pageNumbers)=>{
73
+ compress(pageNumbers, (pageNumberA, pageNumberB)=>{
74
+ if (pageNumberA !== pageNumberB) {
75
+ return true;
76
+ }
77
+ });
78
+ pageNumbers.sort((pageNumberB, pageNumberA)=>{
79
+ pageNumberA = Number(pageNumberA); ///
80
+ pageNumberB = Number(pageNumberB); ///
81
+ const difference = pageNumberB - pageNumberA;
82
+ return difference;
83
+ });
84
+ return pageNumbers;
85
+ });
86
+ }
87
+ function removeIgnoredWords(indexMap, context) {
88
+ const { ignoredWords = [] } = context;
89
+ ignoredWords.forEach((ignoredWord)=>{
90
+ delete indexMap[ignoredWord];
91
+ });
92
+ }
93
+ function adjustProperNouns(indexMap, context) {
94
+ const { properNouns = [] } = context, lowerCaseProperNouns = properNouns.map((properNoun)=>{
95
+ const lowerCaseProperNoun = properNoun.toLowerCase();
96
+ return lowerCaseProperNoun;
97
+ });
98
+ (0, _object.mapKeys)(indexMap, (wordOrPhrase)=>{
99
+ const index = lowerCaseProperNouns.findIndex((lowerCaseProperName)=>{
100
+ if (lowerCaseProperName === wordOrPhrase) {
101
+ return true;
102
+ }
103
+ });
104
+ if (index > -1) {
105
+ const properNoun = properNouns[index];
106
+ wordOrPhrase = properNoun; ///
107
+ }
108
+ return wordOrPhrase;
109
+ });
110
+ }
111
+ function preparePlainText(plainText) {
112
+ plainText = plainText.toLowerCase(); ///
113
+ plainText = plainText.replace(/[^a-z0-9\- ]/g, _constants.SINGLE_SPACE);
114
+ plainText = plainText.replace(/\s+/g, _constants.SINGLE_SPACE);
115
+ plainText = plainText.replace(/^\s+|\s+$/g, _constants.EMPTY_STRING);
116
+ return plainText;
117
+ }
118
+ function adjustAcronyms(indexMap, context) {
119
+ const { acronyms = [] } = context, lowerCaseAcronyms = acronyms.map((acronym)=>{
120
+ const lowerCaseAcronym = acronym.toLowerCase();
121
+ return lowerCaseAcronym;
122
+ });
123
+ (0, _object.mapKeys)(indexMap, (wordOrPhrase)=>{
124
+ const index = lowerCaseAcronyms.findIndex((lowerCaseProperName)=>{
125
+ if (lowerCaseProperName === wordOrPhrase) {
126
+ return true;
127
+ }
128
+ });
129
+ if (index > -1) {
130
+ const acronym = acronyms[index];
131
+ wordOrPhrase = acronym; ///
132
+ }
133
+ return wordOrPhrase;
134
+ });
135
+ }
136
+ function adjustMixedPlurals(indexMap, context) {
137
+ const { plurals = [] } = context, mixedPlurals = reducePlurals(plurals, isMixed), pluralPlurals = mapPlurals(mixedPlurals, mixedToPlural), singularPlurals = mapPlurals(mixedPlurals, mixedToSingular);
138
+ (0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
139
+ const singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
140
+ if (singularPluralsIncludesWordOrPhrase) {
141
+ const singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, mixedWordOrPhrase = singularToMixed(singularWordOrPhrase), mixedPageNumbers = indexMap[mixedWordOrPhrase] || [];
142
+ pageNumbers = [
143
+ ...singularPageNumbers,
144
+ ...mixedPageNumbers
145
+ ];
146
+ delete indexMap[singularWordOrPhrase];
147
+ indexMap[mixedWordOrPhrase] = pageNumbers;
148
+ }
149
+ const pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
150
+ if (pluralPluralsIncludesWordOrPhrase) {
151
+ const pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers, mixedWordOrPhrase = pluralToMixed(pluralWordOrPhrase), mixedPageNumbers = indexMap[mixedWordOrPhrase] || [];
152
+ pageNumbers = [
153
+ ...pluralPageNumbers,
154
+ ...mixedPageNumbers
155
+ ];
156
+ delete indexMap[pluralWordOrPhrase];
157
+ indexMap[mixedWordOrPhrase] = pageNumbers;
158
+ }
159
+ });
160
+ }
161
+ function adjustPluralPlurals(indexMap, context) {
162
+ const { plurals = [] } = context, pluralPlurals = reducePlurals(plurals, isPlural), singularPlurals = mapPlurals(pluralPlurals, pluralToSingular);
163
+ (0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
164
+ const singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
165
+ if (singularPluralsIncludesWordOrPhrase) {
166
+ const singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, pluralWordOrPhrase = singularToPlural(wordOrPhrase), pluralPageNumbers = indexMap[pluralWordOrPhrase] || [];
167
+ pageNumbers = [
168
+ ...singularPageNumbers,
169
+ ...pluralPageNumbers
170
+ ];
171
+ delete indexMap[singularWordOrPhrase];
172
+ indexMap[pluralWordOrPhrase] = pageNumbers;
173
+ }
174
+ });
175
+ }
176
+ function adjustSingularPlurals(indexMap, context) {
177
+ const { plurals = [] } = context, singularPlurals = reducePlurals(plurals, isSingular), pluralPlurals = mapPlurals(singularPlurals, singularToPlural);
178
+ (0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
179
+ const pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
180
+ if (pluralPluralsIncludesWordOrPhrase) {
181
+ const singularWordOrPhrase = pluralToSingular(wordOrPhrase), singularPageNumbers = indexMap[singularWordOrPhrase] || [], pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers; ///
182
+ pageNumbers = [
183
+ ...singularPageNumbers,
184
+ ...pluralPageNumbers
185
+ ];
186
+ delete indexMap[pluralWordOrPhrase];
187
+ indexMap[singularWordOrPhrase] = pageNumbers;
188
+ }
189
+ });
190
+ }
191
+ function reducePlurals(plurals, callback) {
192
+ plurals = plurals.reduce((plurals, plural)=>{
193
+ const result = callback(plural);
194
+ if (result) {
195
+ plurals.push(plural);
196
+ }
197
+ return plurals;
198
+ }, []);
199
+ return plurals;
200
+ }
201
+ function mapPlurals(plurals, callback) {
202
+ plurals = plurals.map((plural)=>{
203
+ plural = callback(plural);
204
+ return plural;
205
+ });
206
+ return plurals;
207
+ }
208
+ function isSingular(text) {
209
+ const indexMatches = /[^s)]$/.test(text), singular = indexMatches; ///
210
+ return singular;
211
+ }
212
+ function isPlural(text) {
213
+ const indexMatches = /(ies|s)$/.test(text), plural = indexMatches; ///
214
+ return plural;
215
+ }
216
+ function isMixed(text) {
217
+ const indexMatches = /\(s\)$/.test(text), mixed = indexMatches; ///
218
+ return mixed;
219
+ }
220
+ function mixedToPlural(text) {
221
+ text = text ///
222
+ .replace(/\(s\)$/, _constants.S_STRING);
223
+ return text;
224
+ }
225
+ function pluralToMixed(text) {
226
+ text = text ///
227
+ .replace(/s$/, _constants.PARENTHESISED_S_STRING);
228
+ return text;
229
+ }
230
+ function mixedToSingular(text) {
231
+ text = text ///
232
+ .replace(/\(s\)$/, _constants.EMPTY_STRING);
233
+ return text;
234
+ }
235
+ function singularToMixed(text) {
236
+ text = `${text}(s)`;
237
+ return text;
238
+ }
239
+ function singularToPlural(text) {
240
+ text = `${text}s` ///
241
+ .replace(/ys$/, _constants.IES_STRING);
242
+ return text;
243
+ }
244
+ function pluralToSingular(text) {
245
+ text = text ///
246
+ .replace(/ies$/, _constants.Y_STRING).replace(/s$/, _constants.EMPTY_STRING);
247
+ return text;
248
+ }
249
+
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZG9tXCJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBpc0xlc3NUaGFuLCBpc0FuY2VzdG9yT2YgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE1hcEZyb21JbmRleERpcmVjdGl2ZUhUTUxOb2RlQW5kRGl2aXNpb25IVE1MTm9kZXMoaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSwgZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXAgPSBjcmVhdGVJbmRleE1hcChpbmRleERpcmVjdGl2ZUhUTUxOb2RlLCBkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGluZGV4RGlyZWN0aXZlSFRNTE5vZGUsIGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWFwID0ge307XG5cbiAgY29uc3QgeyBwaHJhc2VzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIGluZGV4TWF0Y2hlcyA9IHBocmFzZXMubWFwKChwaHJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleE1hdGNoID0gSW5kZXhNYXRjaC5mcm9tUGhyYXNlKHBocmFzZSk7XG5cbiAgICAgICAgICByZXR1cm4gaW5kZXhNYXRjaDtcbiAgICAgICAgfSk7XG5cbiAgZGl2aXNpb25IVE1MTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25IVE1MTm9kZSkgPT4ge1xuICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUgPSBpc0xlc3NUaGFuKGRpdmlzaW9uSFRNTE5vZGUsIGluZGV4RGlyZWN0aXZlSFRNTE5vZGUpO1xuXG4gICAgaWYgKGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVBbmNlc3Rvck9mSW5kZXhEaXJlY3RpdmVIVE1MTm9kZSA9IGlzQW5jZXN0b3JPZihkaXZpc2lvbkhUTUxOb2RlLCBpbmRleERpcmVjdGl2ZUhUTUxOb2RlKTtcblxuICAgICAgaWYgKCFkaXZpc2lvbkhUTUxOb2RlQW5jZXN0b3JPZkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IGRpdmlzaW9uSFRNTE5vZGUucGFnZU51bWJlcihjb250ZXh0KTtcblxuICAgICAgICBpZiAocGFnZU51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uSFRNTE5vZGUuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICAgICAgd29yZHNPclBocmFzZXMuZm9yRWFjaCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVycyA9IGluZGV4TWFwLmhhc093blByb3BlcnR5KHdvcmRPclBocmFzZSkgP1xuICAgICAgICAgICAgICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdIDpcbiAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICAgICAgaW5kZXhNYXBbd29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuXG4gICAgICAgICAgICBwYWdlTnVtYmVycy5wdXNoKHBhZ2VOdW1iZXIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIHdvcmRzT3JQaHJhc2VzRnJvbVBsYWluVGV4dEFuZEluZGV4TWF0Y2hlcyhwbGFpblRleHQsIGluZGV4TWF0Y2hlcykge1xuICBsZXQgd29yZHNPclBocmFzZXM7XG5cbiAgcGxhaW5UZXh0ID0gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpOyAgLy8vXG5cbiAgaW5kZXhNYXRjaGVzLmZvckVhY2goKGluZGV4TWF0Y2gpID0+IHtcbiAgICBwbGFpblRleHQgPSBpbmRleE1hdGNoLnJlcGxhY2UocGxhaW5UZXh0KTtcbiAgfSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSBwbGFpblRleHQuc3BsaXQoU0lOR0xFX1NQQUNFKTtcblxuICB3b3Jkc09yUGhyYXNlcyA9IHdvcmRzT3JQaHJhc2VzLm1hcCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgd29yZE9yUGhyYXNlID0gSW5kZXhNYXRjaC5yZXZlcnQod29yZE9yUGhyYXNlKTsgIC8vL1xuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmRzT3JQaHJhc2VzO1xufVxuXG5mdW5jdGlvbiBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKSB7XG4gIG1hcFZhbHVlcyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICBjb21wcmVzcyhwYWdlTnVtYmVycywgKHBhZ2VOdW1iZXJBLCBwYWdlTnVtYmVyQikgPT4ge1xuICAgICAgaWYgKHBhZ2VOdW1iZXJBICE9PSBwYWdlTnVtYmVyQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhZ2VOdW1iZXJzLnNvcnQoKHBhZ2VOdW1iZXJCLCBwYWdlTnVtYmVyQSkgPT4ge1xuICAgICAgcGFnZU51bWJlckEgPSBOdW1iZXIocGFnZU51bWJlckEpOyAgLy8vXG5cbiAgICAgIHBhZ2VOdW1iZXJCID0gTnVtYmVyKHBhZ2VOdW1iZXJCKTsgIC8vL1xuXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gcGFnZU51bWJlckIgLSBwYWdlTnVtYmVyQTtcblxuICAgICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlcnM7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJZ25vcmVkV29yZHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpZ25vcmVkV29yZHMgPSBbXSB9ID0gY29udGV4dDtcblxuICBpZ25vcmVkV29yZHMuZm9yRWFjaCgoaWdub3JlZFdvcmQpID0+IHtcbiAgICBkZWxldGUgaW5kZXhNYXBbaWdub3JlZFdvcmRdO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcm9wZXJOb3VucyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VQcm9wZXJOb3VucyA9IHByb3Blck5vdW5zLm1hcCgocHJvcGVyTm91bikgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW4gPSBwcm9wZXJOb3VuLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlUHJvcGVyTm91bjtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlUHJvcGVyTm91bnMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByb3Blck5vdW4gPSBwcm9wZXJOb3Vuc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IHByb3Blck5vdW47ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpIHtcbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnRvTG93ZXJDYXNlKCk7ICAvLy9cblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvW15hLXowLTlcXC0gXS9nLCBTSU5HTEVfU1BBQ0UpO1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9cXHMrL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL15cXHMrfFxccyskL2csIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn1cblxuZnVuY3Rpb24gYWRqdXN0QWNyb255bXMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBhY3JvbnltcyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VBY3JvbnltcyA9IGFjcm9ueW1zLm1hcCgoYWNyb255bSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW0gPSBhY3JvbnltLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlQWNyb255bTtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlQWNyb255bXMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGFjcm9ueW0gPSBhY3Jvbnltc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IGFjcm9ueW07ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0TWl4ZWRQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcGx1cmFscyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IHBsdXJhbHMgPSBbXSB9ID0gY29udGV4dCxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNQbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKHBsdXJhbFBsdXJhbHMsIHBsdXJhbFRvU2luZ3VsYXIpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb1BsdXJhbCh3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdIHx8IFtdO1xuXG4gICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgLi4uc2luZ3VsYXJQYWdlTnVtYmVycyxcbiAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV07XG5cbiAgICAgIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RTaW5ndWxhclBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwbHVyYWxzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIHNpbmd1bGFyUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNTaW5ndWxhciksXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSBtYXBQbHVyYWxzKHNpbmd1bGFyUGx1cmFscywgc2luZ3VsYXJUb1BsdXJhbCk7XG5cbiAgZm9yRWFjaChpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICAgIGNvbnN0IHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSA9IHBsdXJhbFBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgICAgaWYgKHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgICBjb25zdCBzaW5ndWxhcldvcmRPclBocmFzZSA9IHBsdXJhbFRvU2luZ3VsYXIod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgICAgc2luZ3VsYXJQYWdlTnVtYmVycyA9IGluZGV4TWFwW3Npbmd1bGFyV29yZE9yUGhyYXNlXSB8fCBbXSxcbiAgICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnM7ICAvLy9cblxuICAgICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICAgIF07XG5cbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV07XG5cbiAgICAgICAgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLnJlZHVjZSgocGx1cmFscywgcGx1cmFsKSA9PiB7IC8vL1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBwbHVyYWxzLnB1c2gocGx1cmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGx1cmFscztcbiAgfSwgW10pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBtYXBQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLm1hcCgocGx1cmFsKSA9PiB7IC8vL1xuICAgIHBsdXJhbCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICByZXR1cm4gcGx1cmFsO1xuICB9KTtcblxuICByZXR1cm4gcGx1cmFscztcbn1cblxuZnVuY3Rpb24gaXNTaW5ndWxhcih0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9bXnMpXSQvLnRlc3QodGV4dCksXG4gICAgICAgIHNpbmd1bGFyID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gc2luZ3VsYXI7XG59XG5cbmZ1bmN0aW9uIGlzUGx1cmFsKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gLyhpZXN8cykkLy50ZXN0KHRleHQpLFxuICAgICAgICBwbHVyYWwgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBwbHVyYWw7XG59XG5cbmZ1bmN0aW9uIGlzTWl4ZWQodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvXFwoc1xcKSQvLnRlc3QodGV4dCksXG4gICAgICAgIG1peGVkID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gbWl4ZWQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIFBBUkVOVEhFU0lTRURfU19TVFJJTkcpXG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9TaW5ndWxhcih0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgIC5yZXBsYWNlKC9cXChzXFwpJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9NaXhlZCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fShzKWA7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gYCR7dGV4dH1zYCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3lzJC8sIElFU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9pZXMkLywgWV9TVFJJTkcpXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG4iXSwibmFtZXMiOlsiaW5kZXhNYXBGcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImlzTGVzc1RoYW4iLCJpc0FuY2VzdG9yT2YiLCJub2RlVXRpbGl0aWVzIiwiaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uSFRNTE5vZGUiLCJkaXZpc2lvbkhUTUxOb2RlTGVzc1RoYW5JbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwiZGl2aXNpb25IVE1MTm9kZUFuY2VzdG9yT2ZJbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwicGFnZU51bWJlciIsInBsYWluVGV4dCIsImFzUGxhaW5UZXh0Iiwid29yZHNPclBocmFzZXMiLCJ3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMiLCJ3b3JkT3JQaHJhc2UiLCJwYWdlTnVtYmVycyIsImhhc093blByb3BlcnR5IiwicHVzaCIsInByZXBhcmVQbGFpblRleHQiLCJyZXBsYWNlIiwic3BsaXQiLCJTSU5HTEVfU1BBQ0UiLCJyZXZlcnQiLCJtYXBWYWx1ZXMiLCJwYWdlTnVtYmVyQSIsInBhZ2VOdW1iZXJCIiwic29ydCIsIk51bWJlciIsImRpZmZlcmVuY2UiLCJpZ25vcmVkV29yZHMiLCJpZ25vcmVkV29yZCIsInByb3Blck5vdW5zIiwibG93ZXJDYXNlUHJvcGVyTm91bnMiLCJwcm9wZXJOb3VuIiwibG93ZXJDYXNlUHJvcGVyTm91biIsInRvTG93ZXJDYXNlIiwibWFwS2V5cyIsImluZGV4IiwiZmluZEluZGV4IiwibG93ZXJDYXNlUHJvcGVyTmFtZSIsIkVNUFRZX1NUUklORyIsImFjcm9ueW1zIiwibG93ZXJDYXNlQWNyb255bXMiLCJhY3JvbnltIiwibG93ZXJDYXNlQWNyb255bSIsInBsdXJhbHMiLCJtaXhlZFBsdXJhbHMiLCJyZWR1Y2VQbHVyYWxzIiwiaXNNaXhlZCIsInBsdXJhbFBsdXJhbHMiLCJtYXBQbHVyYWxzIiwibWl4ZWRUb1BsdXJhbCIsInNpbmd1bGFyUGx1cmFscyIsIm1peGVkVG9TaW5ndWxhciIsInNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwiaW5jbHVkZXMiLCJzaW5ndWxhcldvcmRPclBocmFzZSIsInNpbmd1bGFyUGFnZU51bWJlcnMiLCJtaXhlZFdvcmRPclBocmFzZSIsInNpbmd1bGFyVG9NaXhlZCIsIm1peGVkUGFnZU51bWJlcnMiLCJwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UiLCJwbHVyYWxXb3JkT3JQaHJhc2UiLCJwbHVyYWxQYWdlTnVtYmVycyIsInBsdXJhbFRvTWl4ZWQiLCJpc1BsdXJhbCIsInBsdXJhbFRvU2luZ3VsYXIiLCJzaW5ndWxhclRvUGx1cmFsIiwiaXNTaW5ndWxhciIsImNhbGxiYWNrIiwicmVkdWNlIiwicGx1cmFsIiwicmVzdWx0IiwidGV4dCIsInRlc3QiLCJzaW5ndWxhciIsIm1peGVkIiwiU19TVFJJTkciLCJQQVJFTlRIRVNJU0VEX1NfU1RSSU5HIiwiSUVTX1NUUklORyIsIllfU1RS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
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get findJSXElement () {
13
+ return findJSXElement;
14
+ },
15
+ get isTagNameJSXTagName () {
16
+ return isTagNameJSXTagName;
17
+ },
18
+ get mountJSXElement () {
19
+ return mountJSXElement;
20
+ },
21
+ get unmountJSXElement () {
22
+ return unmountJSXElement;
23
+ }
24
+ });
25
+ const jsxNameRegularExpression = /^[A-Z]/;
26
+ function findJSXElement(tagName, context) {
27
+ const { JSXElements = [] } = context, JSXElement = JSXElements.find((JSXElement)=>{
28
+ const { defaultProperties = {} } = JSXElement, { name } = defaultProperties, nameTagName = name === tagName;
29
+ if (nameTagName) {
30
+ return true;
31
+ }
32
+ }) || null;
33
+ return JSXElement;
34
+ }
35
+ function mountJSXElement(jsxElement) {
36
+ const element = jsxElement, descendantElements = element.getDescendantElements(), elements = [
37
+ element,
38
+ ...descendantElements
39
+ ];
40
+ elements.reverse(); ///
41
+ elements.forEach((element)=>{
42
+ element.didMount && element.didMount();
43
+ });
44
+ }
45
+ function unmountJSXElement(jsxElement) {
46
+ const element = jsxElement, descendantElements = element.getDescendantElements(), elements = [
47
+ element,
48
+ ...descendantElements
49
+ ];
50
+ elements.forEach((element)=>{
51
+ element.willUnmount && element.willUnmount();
52
+ });
53
+ }
54
+ function isTagNameJSXTagName(tagName) {
55
+ const tagNameJSXTagName = jsxNameRegularExpression.test(tagName); ///
56
+ return tagNameJSXTagName;
57
+ }
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanN4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBqc3hOYW1lUmVndWxhckV4cHJlc3Npb24gPSAvXltBLVpdLztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRKU1hFbGVtZW50KHRhZ05hbWUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBKU1hFbGVtZW50cyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBKU1hFbGVtZW50ID0gSlNYRWxlbWVudHMuZmluZCgoSlNYRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgZGVmYXVsdFByb3BlcnRpZXMgPSB7fSB9ID0gSlNYRWxlbWVudCxcbiAgICAgICAgICAgICAgICB7IG5hbWUgfSA9IGRlZmF1bHRQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgIG5hbWVUYWdOYW1lID0gKG5hbWUgPT09IHRhZ05hbWUpO1xuXG4gICAgICAgICAgaWYgKG5hbWVUYWdOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIEpTWEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEpTWEVsZW1lbnQoanN4RWxlbWVudCkge1xuICBjb25zdCBlbGVtZW50ID0ganN4RWxlbWVudCwgLy8vXG4gICAgICAgIGRlc2NlbmRhbnRFbGVtZW50cyA9IGVsZW1lbnQuZ2V0RGVzY2VuZGFudEVsZW1lbnRzKCksXG4gICAgICAgIGVsZW1lbnRzID0gW1xuICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgLi4uZGVzY2VuZGFudEVsZW1lbnRzXG4gICAgICAgIF07XG5cbiAgZWxlbWVudHMucmV2ZXJzZSgpOyAvLy9cblxuICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgZWxlbWVudC5kaWRNb3VudCAmJiBlbGVtZW50LmRpZE1vdW50KCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5tb3VudEpTWEVsZW1lbnQoanN4RWxlbWVudCkge1xuICBjb25zdCBlbGVtZW50ID0ganN4RWxlbWVudCwgLy8vXG4gICAgICAgIGRlc2NlbmRhbnRFbGVtZW50cyA9IGVsZW1lbnQuZ2V0RGVzY2VuZGFudEVsZW1lbnRzKCksXG4gICAgICAgIGVsZW1lbnRzID0gW1xuICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgLi4uZGVzY2VuZGFudEVsZW1lbnRzXG4gICAgICAgIF07XG5cbiAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGVsZW1lbnQud2lsbFVubW91bnQgJiYgZWxlbWVudC53aWxsVW5tb3VudCgpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnTmFtZUpTWFRhZ05hbWUodGFnTmFtZSkge1xuICBjb25zdCB0YWdOYW1lSlNYVGFnTmFtZSA9IGpzeE5hbWVSZWd1bGFyRXhwcmVzc2lvbi50ZXN0KHRhZ05hbWUpOyAvLy9cblxuICByZXR1cm4gdGFnTmFtZUpTWFRhZ05hbWU7XG59XG4iXSwibmFtZXMiOlsiZmluZEpTWEVsZW1lbnQiLCJpc1RhZ05hbWVKU1hUYWdOYW1lIiwibW91bnRKU1hFbGVtZW50IiwidW5tb3VudEpTWEVsZW1lbnQiLCJqc3hOYW1lUmVndWxhckV4cHJlc3Npb24iLCJ0YWdOYW1lIiwiY29udGV4dCIsIkpTWEVsZW1lbnRzIiwiSlNYRWxlbWVudCIsImZpbmQiLCJkZWZhdWx0UHJvcGVydGllcyIsIm5hbWUiLCJuYW1lVGFnTmFtZSIsImpzeEVsZW1lbnQiLCJlbGVtZW50IiwiZGVzY2VuZGFudEVsZW1lbnRzIiwiZ2V0RGVzY2VuZGFudEVsZW1lbnRzIiwiZWxlbWVudHMiLCJyZXZlcnNlIiwiZm9yRWFjaCIsImRpZE1vdW50Iiwid2lsbFVubW91bnQiLCJ0YWdOYW1lSlNYVGFnTmFtZSIsInRlc3QiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBMkNBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQWVBQztlQUFBQTs7O0FBaENoQixNQUFNQywyQkFBMkI7QUFFMUIsU0FBU0osZUFBZUssT0FBTyxFQUFFQyxPQUFPO0lBQzdDLE1BQU0sRUFBRUMsY0FBYyxFQUFFLEVBQUUsR0FBR0QsU0FDdkJFLGFBQWFELFlBQVlFLElBQUksQ0FBQyxDQUFDRDtRQUM3QixNQUFNLEVBQUVFLG9CQUFvQixDQUFDLENBQUMsRUFBRSxHQUFHRixZQUM3QixFQUFFRyxJQUFJLEVBQUUsR0FBR0QsbUJBQ1hFLGNBQWVELFNBQVNOO1FBRTlCLElBQUlPLGFBQWE7WUFDZixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRVosT0FBT0o7QUFDVDtBQUVPLFNBQVNOLGdCQUFnQlcsVUFBVTtJQUN4QyxNQUFNQyxVQUFVRCxZQUNWRSxxQkFBcUJELFFBQVFFLHFCQUFxQixJQUNsREMsV0FBVztRQUNUSDtXQUNHQztLQUNKO0lBRVBFLFNBQVNDLE9BQU8sSUFBSSxHQUFHO0lBRXZCRCxTQUFTRSxPQUFPLENBQUMsQ0FBQ0w7UUFDaEJBLFFBQVFNLFFBQVEsSUFBSU4sUUFBUU0sUUFBUTtJQUN0QztBQUNGO0FBRU8sU0FBU2pCLGtCQUFrQlUsVUFBVTtJQUMxQyxNQUFNQyxVQUFVRCxZQUNWRSxxQkFBcUJELFFBQVFFLHFCQUFxQixJQUNsREMsV0FBVztRQUNUSDtXQUNHQztLQUNKO0lBRVBFLFNBQVNFLE9BQU8sQ0FBQyxDQUFDTDtRQUNoQkEsUUFBUU8sV0FBVyxJQUFJUCxRQUFRTyxXQUFXO0lBQzVDO0FBQ0Y7QUFFTyxTQUFTcEIsb0JBQW9CSSxPQUFPO0lBQ3pDLE1BQU1pQixvQkFBb0JsQix5QkFBeUJtQixJQUFJLENBQUNsQixVQUFVLEdBQUc7SUFFckUsT0FBT2lCO0FBQ1QifQ==
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get default () {
13
+ return _default;
14
+ },
15
+ get embedDirectiveMarkdownNodesFromNode () {
16
+ return embedDirectiveMarkdownNodesFromNode;
17
+ },
18
+ get ignoreDirectiveMarkdownNodeFromNode () {
19
+ return ignoreDirectiveMarkdownNodeFromNode;
20
+ },
21
+ get includeDirectiveMarkdownNodesFromNode () {
22
+ return includeDirectiveMarkdownNodesFromNode;
23
+ },
24
+ get subDivisionMarkdownNodeFromNode () {
25
+ return subDivisionMarkdownNodeFromNode;
26
+ },
27
+ get subDivisionMarkdownNodesFromNode () {
28
+ return subDivisionMarkdownNodesFromNode;
29
+ }
30
+ });
31
+ const _occamquery = require("occam-query");
32
+ const _query = require("../utilities/query");
33
+ const subDivisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/includeDirective");
34
+ function subDivisionMarkdownNodeFromNode(node) {
35
+ const subDivisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, subDivisionMarkdownNodeQuery);
36
+ return subDivisionMarkdownNode;
37
+ }
38
+ function ignoreDirectiveMarkdownNodeFromNode(node) {
39
+ const ignoreDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, ignoreDirectiveMarkdownNodeQuery);
40
+ return ignoreDirectiveMarkdownNode;
41
+ }
42
+ function subDivisionMarkdownNodesFromNode(node, subDivisionMarkdownNodes = []) {
43
+ (0, _query.nodesFromNodeAndQuery)(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
44
+ return subDivisionMarkdownNodes;
45
+ }
46
+ function embedDirectiveMarkdownNodesFromNode(node, embedDirectiveMarkdownNodes = []) {
47
+ (0, _query.nodesFromNodeAndQuery)(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
48
+ return embedDirectiveMarkdownNodes;
49
+ }
50
+ function includeDirectiveMarkdownNodesFromNode(node, includeDirectiveMarkdownNodes = []) {
51
+ (0, _query.nodesFromNodeAndQuery)(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
52
+ return includeDirectiveMarkdownNodes;
53
+ }
54
+ const _default = {
55
+ subDivisionMarkdownNodeFromNode,
56
+ ignoreDirectiveMarkdownNodeFromNode,
57
+ embedDirectiveMarkdownNodesFromNode,
58
+ includeDirectiveMarkdownNodesFromNode
59
+ };
60
+
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5LCBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvZGl2aXNpb24vc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pZ25vcmVEaXJlY3RpdmVcIiksXG4gICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uXCIpLFxuICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2VtYmVkRGlyZWN0aXZlXCIpLFxuICAgICAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaW5jbHVkZURpcmVjdGl2ZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnksIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSIsIm5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5IiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTBDQTtlQUFBOztRQVpnQkE7ZUFBQUE7O1FBWkFDO2VBQUFBOztRQWtCQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFZQUM7ZUFBQUE7Ozs0QkF0Qk07dUJBRXNDO0FBRTVELE1BQU1DLCtCQUErQkMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMEJBQzFEQyxtQ0FBbUNGLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHFEQUM5REUsZ0NBQWdDSCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQywwQkFDM0RHLG1DQUFtQ0osaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMkNBQzlESSxxQ0FBcUNMLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDO0FBRS9ELFNBQVNKLGdDQUFnQ1MsSUFBSTtJQUNsRCxNQUFNQywwQkFBMEJDLElBQUFBLDJCQUFvQixFQUFDRixNQUFNUDtJQUUzRCxPQUFPUTtBQUNUO0FBRU8sU0FBU1osb0NBQW9DVyxJQUFJO0lBQ3RELE1BQU1HLDhCQUE4QkQsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1KO0lBRS9ELE9BQU9PO0FBQ1Q7QUFFTyxTQUFTWCxpQ0FBaUNRLElBQUksRUFBRUksMkJBQTJCLEVBQUU7SUFDbEZDLElBQUFBLDRCQUFxQixFQUFDTCxNQUFNSCwrQkFBK0JPO0lBRTNELE9BQU9BO0FBQ1Q7QUFFTyxTQUFTaEIsb0NBQW9DWSxJQUFJLEVBQUVNLDhCQUE4QixFQUFFO0lBQ3hGRCxJQUFBQSw0QkFBcUIsRUFBQ0wsTUFBTUYsa0NBQWtDUTtJQUU5RCxPQUFPQTtBQUNUO0FBRU8sU0FBU2hCLHNDQUFzQ1UsSUFBSSxFQUFFTyxnQ0FBZ0MsRUFBRTtJQUM1RkYsSUFBQUEsNEJBQXFCLEVBQUNMLE1BQU1ELG9DQUFvQ1E7SUFFaEUsT0FBT0E7QUFDVDtNQUVBLFdBQWU7SUFDYmhCO0lBQ0FGO0lBQ0FEO0lBQ0FFO0FBQ0YifQ==
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _default = {};
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd25TdHlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQge307XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUFBOzs7TUFBQSxXQUFlLENBQUMifQ==
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get filter () {
13
+ return filter;
14
+ },
15
+ get forEach () {
16
+ return forEach;
17
+ },
18
+ get mapKeys () {
19
+ return mapKeys;
20
+ },
21
+ get mapValues () {
22
+ return mapValues;
23
+ }
24
+ });
25
+ function forEach(object, callback) {
26
+ const keys = Object.keys(object);
27
+ keys.forEach((key)=>{
28
+ const value = object[key];
29
+ callback(key, value);
30
+ });
31
+ }
32
+ function filter(object, callback) {
33
+ const keys = Object.keys(object);
34
+ keys.forEach((key)=>{
35
+ const value = object[key], result = callback(key, value);
36
+ if (!result) {
37
+ delete object[key];
38
+ }
39
+ });
40
+ }
41
+ function mapKeys(object, callback) {
42
+ let keys = Object.keys(object);
43
+ const values = [];
44
+ keys = keys.map((key)=>{
45
+ const value = object[key];
46
+ delete object[key];
47
+ key = callback(key, value); ///
48
+ values.push(value);
49
+ return key;
50
+ });
51
+ keys.forEach((key, index)=>{
52
+ const value = values[index];
53
+ object[key] = value;
54
+ });
55
+ }
56
+ function mapValues(object, callback) {
57
+ const keys = Object.keys(object);
58
+ keys.forEach((key)=>{
59
+ let value = object[key];
60
+ value = callback(key, value); ///
61
+ object[key] = value;
62
+ });
63
+ }
64
+
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIGNhbGxiYWNrKGtleSwgdmFsdWUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhrZXksIHZhbHVlKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEtleXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgY29uc3QgdmFsdWVzID0gW107XG5cbiAga2V5cyA9IGtleXMubWFwKChrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgZGVsZXRlIG9iamVjdFtrZXldO1xuXG4gICAga2V5ID0gY2FsbGJhY2soa2V5LCB2YWx1ZSk7IC8vL1xuXG4gICAgdmFsdWVzLnB1c2godmFsdWUpO1xuXG4gICAgcmV0dXJuIGtleTtcbiAgfSk7XG5cbiAga2V5cy5mb3JFYWNoKChrZXksIGluZGV4KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdO1xuXG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgdmFsdWUgPSBjYWxsYmFjayhrZXksIHZhbHVlKTsgLy8vXG5cbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9KTtcbn0iXSwibmFtZXMiOlsiZmlsdGVyIiwiZm9yRWFjaCIsIm1hcEtleXMiLCJtYXBWYWx1ZXMiLCJvYmplY3QiLCJjYWxsYmFjayIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3VsdCIsInZhbHVlcyIsIm1hcCIsInB1c2giLCJpbmRleCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBWWdCQTtlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBdUJBQztlQUFBQTs7UUF3QkFDO2VBQUFBOzs7QUEvQ1QsU0FBU0YsUUFBUUcsTUFBTSxFQUFFQyxRQUFRO0lBQ3RDLE1BQU1DLE9BQU9DLE9BQU9ELElBQUksQ0FBQ0Y7SUFFekJFLEtBQUtMLE9BQU8sQ0FBQyxDQUFDTztRQUNaLE1BQU1DLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSTtRQUV6QkgsU0FBU0csS0FBS0M7SUFDaEI7QUFDRjtBQUVPLFNBQVNULE9BQU9JLE1BQU0sRUFBRUMsUUFBUTtJQUNyQyxNQUFNQyxPQUFPQyxPQUFPRCxJQUFJLENBQUNGO0lBRXpCRSxLQUFLTCxPQUFPLENBQUMsQ0FBQ087UUFDWixNQUFNQyxRQUFRTCxNQUFNLENBQUNJLElBQUksRUFDbkJFLFNBQVNMLFNBQVNHLEtBQUtDO1FBRTdCLElBQUksQ0FBQ0MsUUFBUTtZQUNYLE9BQU9OLE1BQU0sQ0FBQ0ksSUFBSTtRQUNwQjtJQUNGO0FBQ0Y7QUFFTyxTQUFTTixRQUFRRSxNQUFNLEVBQUVDLFFBQVE7SUFDdEMsSUFBSUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDRjtJQUV2QixNQUFNTyxTQUFTLEVBQUU7SUFFakJMLE9BQU9BLEtBQUtNLEdBQUcsQ0FBQyxDQUFDSjtRQUNmLE1BQU1DLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSTtRQUV6QixPQUFPSixNQUFNLENBQUNJLElBQUk7UUFFbEJBLE1BQU1ILFNBQVNHLEtBQUtDLFFBQVEsR0FBRztRQUUvQkUsT0FBT0UsSUFBSSxDQUFDSjtRQUVaLE9BQU9EO0lBQ1Q7SUFFQUYsS0FBS0wsT0FBTyxDQUFDLENBQUNPLEtBQUtNO1FBQ2pCLE1BQU1MLFFBQVFFLE1BQU0sQ0FBQ0csTUFBTTtRQUUzQlYsTUFBTSxDQUFDSSxJQUFJLEdBQUdDO0lBQ2hCO0FBQ0Y7QUFFTyxTQUFTTixVQUFVQyxNQUFNLEVBQUVDLFFBQVE7SUFDeEMsTUFBTUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDRjtJQUV6QkUsS0FBS0wsT0FBTyxDQUFDLENBQUNPO1FBQ1osSUFBSUMsUUFBUUwsTUFBTSxDQUFDSSxJQUFJO1FBRXZCQyxRQUFRSixTQUFTRyxLQUFLQyxRQUFRLEdBQUc7UUFFakNMLE1BQU0sQ0FBQ0ksSUFBSSxHQUFHQztJQUNoQjtBQUNGIn0=
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get nodeFromNodeAndQuery () {
13
+ return nodeFromNodeAndQuery;
14
+ },
15
+ get nodeQuery () {
16
+ return nodeQuery;
17
+ },
18
+ get nodesFromNodeAndQueries () {
19
+ return nodesFromNodeAndQueries;
20
+ },
21
+ get nodesFromNodeAndQuery () {
22
+ return nodesFromNodeAndQuery;
23
+ },
24
+ get nodesQuery () {
25
+ return nodesQuery;
26
+ }
27
+ });
28
+ const _occamquery = require("occam-query");
29
+ const _necessary = require("necessary");
30
+ const { push } = _necessary.arrayUtilities;
31
+ function nodeQuery(expression) {
32
+ const query = _occamquery.Query.fromExpressionString(expression);
33
+ return function(node) {
34
+ const nodes = query.execute(node);
35
+ node = nodes.shift() || null; ///
36
+ return node;
37
+ };
38
+ }
39
+ function nodesQuery(expression) {
40
+ const query = _occamquery.Query.fromExpressionString(expression);
41
+ return function(node) {
42
+ const nodes = query.execute(node);
43
+ return nodes;
44
+ };
45
+ }
46
+ function nodeFromNodeAndQuery(node, query) {
47
+ const queryNodes = query.execute(node), queryNode = queryNodes.shift() || null;
48
+ node = queryNode; ///
49
+ return node;
50
+ }
51
+ function nodesFromNodeAndQuery(node, query, nodes) {
52
+ const queryNodes = query.execute(node);
53
+ push(nodes, queryNodes);
54
+ return nodes;
55
+ }
56
+ function nodesFromNodeAndQueries(node, queries, nodes = []) {
57
+ queries.forEach((query)=>{
58
+ const queryNodes = query.execute(node);
59
+ push(nodes, queryNodes);
60
+ });
61
+ return nodes;
62
+ }
63
+
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBwdXNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVRdWVyeShleHByZXNzaW9uKSB7XG4gIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBjb25zdCBub2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgICBub2RlID0gbm9kZXMuc2hpZnQoKSB8fCBudWxsOyAvLy9cblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2Rlc1F1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZSA9IHF1ZXJ5Tm9kZXMuc2hpZnQoKSB8fCBudWxsO1xuXG4gIG5vZGUgPSBxdWVyeU5vZGU7ICAvLy9cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBxdWVyeSwgbm9kZXMpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgcHVzaChub2RlcywgcXVlcnlOb2Rlcyk7XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMobm9kZSwgcXVlcmllcywgbm9kZXMgPSBbXSkge1xuICBxdWVyaWVzLmZvckVhY2goKHF1ZXJ5KSA9PiB7XG4gICAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgICBwdXNoKG5vZGVzLCBxdWVyeU5vZGVzKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuIl0sIm5hbWVzIjpbIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiZXhwcmVzc2lvbiIsInF1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsIm5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJzaGlmdCIsInF1ZXJ5Tm9kZXMiLCJxdWVyeU5vZGUiLCJxdWVyaWVzIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBNkJnQkE7ZUFBQUE7O1FBdEJBQztlQUFBQTs7UUF1Q0FDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFuQkFDO2VBQUFBOzs7NEJBakJNOzJCQUNTO0FBRS9CLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLHlCQUFjO0FBRXhCLFNBQVNMLFVBQVVNLFVBQVU7SUFDbEMsTUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixNQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCQSxPQUFPQyxNQUFNRSxLQUFLLE1BQU0sTUFBTSxHQUFHO1FBRWpDLE9BQU9IO0lBQ1Q7QUFDRjtBQUVPLFNBQVNQLFdBQVdHLFVBQVU7SUFDbkMsTUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixNQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCLE9BQU9DO0lBQ1Q7QUFDRjtBQUVPLFNBQVNaLHFCQUFxQlcsSUFBSSxFQUFFSCxLQUFLO0lBQzlDLE1BQU1PLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0YsT0FDM0JLLFlBQVlELFdBQVdELEtBQUssTUFBTTtJQUV4Q0gsT0FBT0ssV0FBWSxHQUFHO0lBRXRCLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTUixzQkFBc0JRLElBQUksRUFBRUgsS0FBSyxFQUFFSSxLQUFLO0lBQ3RELE1BQU1HLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0Y7SUFFakNOLEtBQUtPLE9BQU9HO0lBRVosT0FBT0g7QUFDVDtBQUVPLFNBQVNWLHdCQUF3QlMsSUFBSSxFQUFFTSxPQUFPLEVBQUVMLFFBQVEsRUFBRTtJQUMvREssUUFBUUMsT0FBTyxDQUFDLENBQUNWO1FBQ2YsTUFBTU8sYUFBYVAsTUFBTUssT0FBTyxDQUFDRjtRQUVqQ04sS0FBS08sT0FBT0c7SUFDZDtJQUVBLE9BQU9IO0FBQ1QifQ==
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get removeBackticks () {
13
+ return removeBackticks;
14
+ },
15
+ get removeLeadingWhitespace () {
16
+ return removeLeadingWhitespace;
17
+ },
18
+ get removeNonAlphabeticCharacters () {
19
+ return removeNonAlphabeticCharacters;
20
+ },
21
+ get removeTrailingWhitespace () {
22
+ return removeTrailingWhitespace;
23
+ },
24
+ get removeWhitespace () {
25
+ return removeWhitespace;
26
+ },
27
+ get replaceSpacesWithHyphens () {
28
+ return replaceSpacesWithHyphens;
29
+ }
30
+ });
31
+ const _constants = require("../constants");
32
+ function removeBackticks(string) {
33
+ return string.replace(/^`|`$/g, _constants.EMPTY_STRING);
34
+ }
35
+ function removeWhitespace(string) {
36
+ return string.replace(/^[\n ]+|[\n ]+$/g, _constants.EMPTY_STRING);
37
+ }
38
+ function removeLeadingWhitespace(string) {
39
+ return string.replace(/^[\n ]+/, _constants.EMPTY_STRING);
40
+ }
41
+ function removeTrailingWhitespace(string) {
42
+ return string.replace(/[\n ]+$/, _constants.EMPTY_STRING);
43
+ }
44
+ function replaceSpacesWithHyphens(string) {
45
+ return string.replace(/ +/g, _constants.HYPHEN);
46
+ }
47
+ function removeNonAlphabeticCharacters(string) {
48
+ return string.replace(/[^a-z\-]/g, _constants.EMPTY_STRING);
49
+ }
50
+
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBIWVBIRU4sIEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJhY2t0aWNrcyhzdHJpbmcpIHsgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9eYHxgJC9nLCBFTVBUWV9TVFJJTkcpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVXaGl0ZXNwYWNlKHN0cmluZykgeyByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL15bXFxuIF0rfFtcXG4gXSskL2csIEVNUFRZX1NUUklORykgfVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTGVhZGluZ1doaXRlc3BhY2Uoc3RyaW5nKSB7IHJldHVybiBzdHJpbmcucmVwbGFjZSgvXltcXG4gXSsvLCBFTVBUWV9TVFJJTkcpIH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZShzdHJpbmcpIHsgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9bXFxuIF0rJC8sIEVNUFRZX1NUUklORykgfVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVNwYWNlc1dpdGhIeXBoZW5zKHN0cmluZykgeyByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLyArL2csIEhZUEhFTik7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU5vbkFscGhhYmV0aWNDaGFyYWN0ZXJzKHN0cmluZykgeyByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1teYS16XFwtXS9nLCBFTVBUWV9TVFJJTkcpOyB9XG4iXSwibmFtZXMiOlsicmVtb3ZlQmFja3RpY2tzIiwicmVtb3ZlTGVhZGluZ1doaXRlc3BhY2UiLCJyZW1vdmVOb25BbHBoYWJldGljQ2hhcmFjdGVycyIsInJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSIsInJlbW92ZVdoaXRlc3BhY2UiLCJyZXBsYWNlU3BhY2VzV2l0aEh5cGhlbnMiLCJzdHJpbmciLCJyZXBsYWNlIiwiRU1QVFlfU1RSSU5HIiwiSFlQSEVOIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQUlBQztlQUFBQTs7UUFNQUM7ZUFBQUE7O1FBSkFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFNQUM7ZUFBQUE7OzsyQkFWcUI7QUFFOUIsU0FBU0wsZ0JBQWdCTSxNQUFNO0lBQUksT0FBT0EsT0FBT0MsT0FBTyxDQUFDLFVBQVVDLHVCQUFZO0FBQUc7QUFFbEYsU0FBU0osaUJBQWlCRSxNQUFNO0lBQUksT0FBT0EsT0FBT0MsT0FBTyxDQUFDLG9CQUFvQkMsdUJBQVk7QUFBRTtBQUU1RixTQUFTUCx3QkFBd0JLLE1BQU07SUFBSSxPQUFPQSxPQUFPQyxPQUFPLENBQUMsV0FBV0MsdUJBQVk7QUFBRTtBQUUxRixTQUFTTCx5QkFBeUJHLE1BQU07SUFBSSxPQUFPQSxPQUFPQyxPQUFPLENBQUMsV0FBV0MsdUJBQVk7QUFBRTtBQUUzRixTQUFTSCx5QkFBeUJDLE1BQU07SUFBSSxPQUFPQSxPQUFPQyxPQUFPLENBQUMsT0FBT0UsaUJBQU07QUFBRztBQUVsRixTQUFTUCw4QkFBOEJJLE1BQU07SUFBSSxPQUFPQSxPQUFPQyxPQUFPLENBQUMsYUFBYUMsdUJBQVk7QUFBRyJ9
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "trim", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return trim;
9
+ }
10
+ });
11
+ const _constants = require("../constants");
12
+ function trim(string) {
13
+ return string.replace(/^"|"$/g, _constants.EMPTY_STRING);
14
+ }
15
+
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nTGl0ZXJhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIlxuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmltKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL15cInxcIiQvZywgRU1QVFlfU1RSSU5HKTtcbn1cbiJdLCJuYW1lcyI6WyJ0cmltIiwic3RyaW5nIiwicmVwbGFjZSIsIkVNUFRZX1NUUklORyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7MkJBRmE7QUFFdEIsU0FBU0EsS0FBS0MsTUFBTTtJQUN6QixPQUFPQSxPQUFPQyxPQUFPLENBQUMsVUFBVUMsdUJBQVk7QUFDOUMifQ==