@terafina/tffa-sfdx-plugin 0.1.2 → 1.0.3

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 (123) hide show
  1. package/README.md +7 -0
  2. package/assets/favicon.png +0 -0
  3. package/assets/highlight.css +68 -0
  4. package/assets/highlight.js +2801 -0
  5. package/assets/icon.png +0 -0
  6. package/assets/index.css +447 -0
  7. package/assets/index.js +411 -0
  8. package/assets/logo.png +0 -0
  9. package/assets/lunr.js +3471 -0
  10. package/assets/mark.js +13 -0
  11. package/assets/menu.js +34 -0
  12. package/assets/search.js +98 -0
  13. package/lib/apexdoc/common/apex-docs-error.d.ts +23 -0
  14. package/lib/apexdoc/common/apex-docs-error.js +28 -0
  15. package/lib/apexdoc/common/apex-docs-error.js.map +1 -0
  16. package/lib/apexdoc/common/array-utils.d.ts +9 -0
  17. package/lib/apexdoc/common/array-utils.js +36 -0
  18. package/lib/apexdoc/common/array-utils.js.map +1 -0
  19. package/lib/apexdoc/common/line-reader.d.ts +40 -0
  20. package/lib/apexdoc/common/line-reader.js +92 -0
  21. package/lib/apexdoc/common/line-reader.js.map +1 -0
  22. package/lib/apexdoc/common/models/apex-model.d.ts +51 -0
  23. package/lib/apexdoc/common/models/apex-model.js +264 -0
  24. package/lib/apexdoc/common/models/apex-model.js.map +1 -0
  25. package/lib/apexdoc/common/models/class-group.d.ts +10 -0
  26. package/lib/apexdoc/common/models/class-group.js +32 -0
  27. package/lib/apexdoc/common/models/class-group.js.map +1 -0
  28. package/lib/apexdoc/common/models/class-model.d.ts +38 -0
  29. package/lib/apexdoc/common/models/class-model.js +216 -0
  30. package/lib/apexdoc/common/models/class-model.js.map +1 -0
  31. package/lib/apexdoc/common/models/engine-config.d.ts +21 -0
  32. package/lib/apexdoc/common/models/engine-config.js +29 -0
  33. package/lib/apexdoc/common/models/engine-config.js.map +1 -0
  34. package/lib/apexdoc/common/models/enum-model.d.ts +15 -0
  35. package/lib/apexdoc/common/models/enum-model.js +47 -0
  36. package/lib/apexdoc/common/models/enum-model.js.map +1 -0
  37. package/lib/apexdoc/common/models/index.d.ts +10 -0
  38. package/lib/apexdoc/common/models/index.js +14 -0
  39. package/lib/apexdoc/common/models/index.js.map +1 -0
  40. package/lib/apexdoc/common/models/method-model.d.ts +26 -0
  41. package/lib/apexdoc/common/models/method-model.js +309 -0
  42. package/lib/apexdoc/common/models/method-model.js.map +1 -0
  43. package/lib/apexdoc/common/models/property-model.d.ts +12 -0
  44. package/lib/apexdoc/common/models/property-model.js +47 -0
  45. package/lib/apexdoc/common/models/property-model.js.map +1 -0
  46. package/lib/apexdoc/common/models/top-level-model.d.ts +19 -0
  47. package/lib/apexdoc/common/models/top-level-model.js +32 -0
  48. package/lib/apexdoc/common/models/top-level-model.js.map +1 -0
  49. package/lib/apexdoc/common/settings.d.ts +55 -0
  50. package/lib/apexdoc/common/settings.js +124 -0
  51. package/lib/apexdoc/common/settings.js.map +1 -0
  52. package/lib/apexdoc/common/tags.d.ts +22 -0
  53. package/lib/apexdoc/common/tags.js +168 -0
  54. package/lib/apexdoc/common/tags.js.map +1 -0
  55. package/lib/apexdoc/common/utils.d.ts +38 -0
  56. package/lib/apexdoc/common/utils.js +198 -0
  57. package/lib/apexdoc/common/utils.js.map +1 -0
  58. package/lib/apexdoc/common/validator-engine.d.ts +24 -0
  59. package/lib/apexdoc/common/validator-engine.js +162 -0
  60. package/lib/apexdoc/common/validator-engine.js.map +1 -0
  61. package/lib/apexdoc/common/validator.d.ts +16 -0
  62. package/lib/apexdoc/common/validator.js +35 -0
  63. package/lib/apexdoc/common/validator.js.map +1 -0
  64. package/lib/apexdoc/engine/file-manager.d.ts +52 -0
  65. package/lib/apexdoc/engine/file-manager.js +390 -0
  66. package/lib/apexdoc/engine/file-manager.js.map +1 -0
  67. package/lib/apexdoc/engine/generators/generator-utils.d.ts +12 -0
  68. package/lib/apexdoc/engine/generators/generator-utils.js +100 -0
  69. package/lib/apexdoc/engine/generators/generator-utils.js.map +1 -0
  70. package/lib/apexdoc/engine/generators/menu-generator.d.ts +9 -0
  71. package/lib/apexdoc/engine/generators/menu-generator.js +81 -0
  72. package/lib/apexdoc/engine/generators/menu-generator.js.map +1 -0
  73. package/lib/apexdoc/engine/generators/models/child-enum-markup-generator.d.ts +10 -0
  74. package/lib/apexdoc/engine/generators/models/child-enum-markup-generator.js +65 -0
  75. package/lib/apexdoc/engine/generators/models/child-enum-markup-generator.js.map +1 -0
  76. package/lib/apexdoc/engine/generators/models/class-markup-generator.d.ts +8 -0
  77. package/lib/apexdoc/engine/generators/models/class-markup-generator.js +49 -0
  78. package/lib/apexdoc/engine/generators/models/class-markup-generator.js.map +1 -0
  79. package/lib/apexdoc/engine/generators/models/enum-markup-generator.d.ts +9 -0
  80. package/lib/apexdoc/engine/generators/models/enum-markup-generator.js +40 -0
  81. package/lib/apexdoc/engine/generators/models/enum-markup-generator.js.map +1 -0
  82. package/lib/apexdoc/engine/generators/models/markup-generator.d.ts +27 -0
  83. package/lib/apexdoc/engine/generators/models/markup-generator.js +148 -0
  84. package/lib/apexdoc/engine/generators/models/markup-generator.js.map +1 -0
  85. package/lib/apexdoc/engine/generators/models/method-markup-generator.d.ts +22 -0
  86. package/lib/apexdoc/engine/generators/models/method-markup-generator.js +224 -0
  87. package/lib/apexdoc/engine/generators/models/method-markup-generator.js.map +1 -0
  88. package/lib/apexdoc/engine/generators/models/property-markup-generator.d.ts +11 -0
  89. package/lib/apexdoc/engine/generators/models/property-markup-generator.js +66 -0
  90. package/lib/apexdoc/engine/generators/models/property-markup-generator.js.map +1 -0
  91. package/lib/apexdoc/engine/generators/models/source-markup-generator.d.ts +10 -0
  92. package/lib/apexdoc/engine/generators/models/source-markup-generator.js +39 -0
  93. package/lib/apexdoc/engine/generators/models/source-markup-generator.js.map +1 -0
  94. package/lib/apexdoc/engine/generators/models/top-level-markup-generator.d.ts +10 -0
  95. package/lib/apexdoc/engine/generators/models/top-level-markup-generator.js +49 -0
  96. package/lib/apexdoc/engine/generators/models/top-level-markup-generator.js.map +1 -0
  97. package/lib/apexdoc/engine/generators/see-link-generator.d.ts +20 -0
  98. package/lib/apexdoc/engine/generators/see-link-generator.js +183 -0
  99. package/lib/apexdoc/engine/generators/see-link-generator.js.map +1 -0
  100. package/lib/commands/tffa/apexdoc.d.ts +29 -0
  101. package/lib/commands/tffa/apexdoc.js +272 -0
  102. package/lib/commands/tffa/apexdoc.js.map +1 -0
  103. package/lib/commands/tffa/ping.d.ts +3 -0
  104. package/lib/commands/tffa/ping.js +4 -0
  105. package/lib/commands/tffa/ping.js.map +1 -1
  106. package/lib/commands/tffa/scan.d.ts +52 -0
  107. package/lib/commands/tffa/scan.js +348 -0
  108. package/lib/commands/tffa/scan.js.map +1 -0
  109. package/lib/index.d.ts +3 -0
  110. package/lib/index.js +3 -0
  111. package/lib/index.js.map +1 -1
  112. package/lib/shared/model.d.ts +30 -0
  113. package/lib/shared/model.js +17 -0
  114. package/lib/shared/model.js.map +1 -0
  115. package/lib/shared/parser.d.ts +3 -0
  116. package/lib/shared/parser.js +101 -0
  117. package/lib/shared/parser.js.map +1 -0
  118. package/lib/shared/rules.d.ts +3 -0
  119. package/lib/shared/rules.js +5 -0
  120. package/lib/shared/rules.js.map +1 -0
  121. package/oclif.manifest.json +1 -1
  122. package/package.json +47 -25
  123. package/CHANGELOG.md +0 -14
package/assets/mark.js ADDED
@@ -0,0 +1,13 @@
1
+ /*!***************************************************
2
+ * mark.js v9.0.0
3
+ * https://markjs.io/
4
+ * Copyright (c) 2014–2018, Julian Kühnel
5
+ * Released under the MIT license https://git.io/vwTVl
6
+ *****************************************************/
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Mark=t()}(this,function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i=
8
+ /* */
9
+ function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=i}return r(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};try{var o=e.contentWindow;if(n=o.document,!o||!n)throw new Error("iframe inaccessible")}catch(e){r()}n&&t(n)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,i=null,a=function a(){if(!o){o=!0,clearTimeout(i);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),i=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&i(c)};s||u(),a.forEach(function(t){e.matches(t,o.exclude)?u():o.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,i=!1;return r.forEach(function(e,t){e.val===n&&(o=t,i=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==o||i?!1===o||i||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach(function(e){e.handled||o.getIframeContents(e.val,function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var i,a,s,c=this,u=this.createIterator(t,e,r),l=[],h=[];s=void 0,s=c.getIteratorNode(u),a=s.prevNode,i=s.node;)this.iframes&&this.forEachIframe(t,function(e){return c.checkIframeFilter(i,a,e,l)},function(t){c.createInstanceOnIframe(t).forEachNode(e,function(e){return h.push(e)},r)}),h.push(i);h.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(l,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=this.getContexts(),a=i.length;a||o(),i.forEach(function(i){var s=function(){r.iterateThroughNodes(e,i,t,n,function(){--a<=0&&o()})};r.iframes?r.waitForIframes(i,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every(function(t){return!r.call(e,t)||(o=!0,!1)}),o}return!1}}]),e}(),a=
10
+ /* */
11
+ function(){function e(n){t(this,e),this.opt=o({},{diacritics:!0,synonyms:{},accuracy:"partially",caseSensitive:!1,ignoreJoiners:!1,ignorePunctuation:[],wildcards:"disabled"},n)}return r(e,[{key:"create",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),new RegExp(e,"gm".concat(this.opt.caseSensitive?"":"i"))}},{key:"sortByLength",value:function(e){return e.sort(function(e,t){return e.length===t.length?e>t?1:-1:t.length-e.length})}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createSynonymsRegExp",value:function(e){var t=this,n=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",o=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in n)if(n.hasOwnProperty(i)){var a=Array.isArray(n[i])?n[i]:[n[i]];a.unshift(i),(a=this.sortByLength(a).map(function(e){return"disabled"!==t.opt.wildcards&&(e=t.setupWildcardsRegExp(e)),e=t.escapeStr(e)}).filter(function(e){return""!==e})).length>1&&(e=e.replace(new RegExp("(".concat(a.map(function(e){return t.escapeStr(e)}).join("|"),")"),"gm".concat(r)),o+"(".concat(a.map(function(e){return t.processSynonyms(e)}).join("|"),")")+o))}return e}},{key:"processSynonyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":""})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":""})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("[".concat(t.join(""),"]*")):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(o){n.every(function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("[".concat(n,"]"),"gm".concat(t)),"[".concat(n,"]")),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,o="string"==typeof n?[]:n.limiters,i="";switch(o.forEach(function(e){i+="|".concat(t.escapeStr(e))}),r){case"partially":default:return"()(".concat(e,")");case"complementary":return i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")),"()([^".concat(i,"]*").concat(e,"[^").concat(i,"]*)");case"exactly":return"(^|\\s".concat(i,")(").concat(e,")(?=$|\\s").concat(i,")")}}}]),e}(),s=
12
+ /* */
13
+ function(){function n(e){t(this,n),this.ctx=e,this.ie=!1;var r=window.navigator.userAgent;(r.indexOf("MSIE")>-1||r.indexOf("Trident")>-1)&&(this.ie=!0)}return r(n,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===e(r)&&"function"==typeof r[n]&&r[n]("mark.js: ".concat(t))}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var o=t.callNoMatchOnInvalidRanges(e,r),i=o.start,a=o.end;o.valid&&(e.start=i,e.length=a-i,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n,r,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+"".concat(JSON.stringify(e))),this.opt.noMatch(e))):(this.log("Ignoring invalid range: ".concat(JSON.stringify(e))),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r,o=!0,i=n.length,a=t-i,s=parseInt(e.start,10)-a;return(r=(s=s>i?i:s)+parseInt(e.length,10))>i&&(r=i,this.log("End range automatically set to the max value of ".concat(i))),s<0||r-s<0||s>i||r>i?(o=!1,this.log("Invalid range: ".concat(JSON.stringify(e))),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return i.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),i=o.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=o.textContent,o.parentNode.replaceChild(a,o),i}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var i=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=i.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,o(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapGroups",value:function(e,t,n,r){return r((e=this.wrapRangeInTextNode(e,t,t+n)).previousSibling),e}},{key:"separateGroups",value:function(e,t,n,r,o){for(var i=t.length,a=1;a<i;a++){var s=e.textContent.indexOf(t[a]);t[a]&&s>-1&&r(t[a],e)&&(e=this.wrapGroups(e,s,t[a].length,o))}return e}},{key:"wrapMatches",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){var o;for(t=t.node;null!==(o=e.exec(t.textContent))&&""!==o[a];){if(i.opt.separateGroups)t=i.separateGroups(t,o,a,n,r);else{if(!n(o[a],t))continue;var s=o.index;if(0!==a)for(var c=1;c<a;c++)s+=o[c].length;t=i.wrapGroups(t,s,o[a].length,r)}e.lastIndex=0}}),o()})}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;this.getTextNodes(function(t){for(var s;null!==(s=e.exec(t.value))&&""!==s[a];){var c=s.index;if(0!==a)for(var u=1;u<a;u++)c+=s[u].length;var l=c+s[a].length;i.wrapRangeInMappedTextNode(t,c,l,function(e){return n(s[a],e)},function(t,n){e.lastIndex=n,r(t)})}o()})}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes(function(i){var a=i.value.length;e.forEach(function(e,r){var s=o.checkWhitespaceRanges(e,a,i.value),c=s.start,u=s.end;s.valid&&o.wrapRangeInMappedTextNode(i,c,u,function(n){return t(n,e,i.value.substring(c,u),r)},function(t){n(t,e)})}),r()})}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'.concat(e,'"'));var r=0,o="wrapMatches";this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,function(e,t){return n.opt.filter(t,e,r)},function(e){r++,n.opt.each(e)},function(){0===r&&n.opt.noMatch(e),n.opt.done(r)})}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",i=this.getSeparatedKeywords("string"==typeof e?[e]:e),s=i.keywords,c=i.length;this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===c?this.opt.done(r):function e(t){var i=new a(n.opt).create(t),u=0;n.log('Searching with expression "'.concat(i,'"')),n[o](i,1,function(e,o){return n.opt.filter(o,t,r,u)},function(e){u++,r++,n.opt.each(e)},function(){0===u&&n.opt.noMatch(t),s[c-1]===t?n.opt.done(r):e(s[s.indexOf(t)+1])})}(s[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,function(e,t,r,o){return n.opt.filter(e,t,r,o)},function(e,t){r++,n.opt.each(e,t)},function(){n.opt.done(r)})):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+=".".concat(this.opt.className)),this.log('Removal selector "'.concat(n,'"')),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,function(e){t.unwrapMatches(e)},function(e){var r=i.matches(e,n),o=t.matchesExclude(e);return!r||o?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}},{key:"opt",set:function(e){this._opt=o({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,acrossElements:!1,ignoreGroups:0,each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new i(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),n}();return function(e){var t=this,n=new s(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}});
package/assets/menu.js ADDED
@@ -0,0 +1,34 @@
1
+ import { menu } from './menujson.js';
2
+ document.addEventListener('DOMContentLoaded', () => {
3
+ loadMenu();
4
+ });
5
+
6
+ const loadMenu = function () {
7
+ var nav = document.getElementById('home').parentElement;
8
+
9
+ menu.forEach(function (group) {
10
+ var details = nav.appendChild(document.createElement('details'));
11
+ details.id = group.name;
12
+ details.classList.add('group-name');
13
+ var summary = details.appendChild(document.createElement('summary'));
14
+ summary.id = 'header-Common';
15
+ summary.classList.add('nav-header');
16
+ var span = summary.appendChild(document.createElement('span'));
17
+ span.innerText = group.name;
18
+
19
+ var ul = details.appendChild(document.createElement('ul'));
20
+ group.items.forEach(function (item) {
21
+ var li = ul.appendChild(document.createElement('li'));
22
+ li.title = item.name;
23
+ li.id = 'item-' + item.name;
24
+ li.classList.add('nav-item', 'class', 'global');
25
+ li.onclick = function () {
26
+ goToLocation(item.path);
27
+ };
28
+ var a = li.appendChild(document.createElement('a'));
29
+ a.tabIndex = 1;
30
+ a.href = 'javascript:void(0)';
31
+ a.innerText = item.name;
32
+ });
33
+ });
34
+ };
@@ -0,0 +1,98 @@
1
+ import documents from './search-idx.js';
2
+
3
+ let searchDelay = null;
4
+ let timeoutHandle = 0;
5
+ const input = document.querySelector('#search-input');
6
+ const searchResults = document.querySelector('#search-results');
7
+
8
+ /** ==================================================================
9
+ * Create Lunr search index
10
+ * ==================================================================
11
+ */
12
+
13
+ const index = lunr(function () {
14
+ this.ref('fileName');
15
+ this.field('title', { boost: 10 });
16
+ this.field('text')
17
+
18
+ documents.forEach(document => {
19
+ this.add(document);
20
+ });
21
+ });
22
+
23
+ /** ==================================================================
24
+ * Attach event listener to input
25
+ * ==================================================================
26
+ */
27
+
28
+ input.addEventListener('keyup', e => {
29
+ if (searchDelay === null) {
30
+ determineSearchDelay();
31
+ }
32
+
33
+ const wait = (() => {
34
+ return (executingFunction, waitTime) => {
35
+ clearTimeout(timeoutHandle);
36
+ timeoutHandle = setTimeout(executingFunction, waitTime);
37
+ };
38
+ })();
39
+
40
+ wait(function () {
41
+ search(e);
42
+ }, searchDelay);
43
+ });
44
+
45
+ /** ==================================================================
46
+ * Search
47
+ * ==================================================================
48
+ */
49
+
50
+ function determineSearchDelay() {
51
+ if (index.tokenSet.toArray().length > 5000) {
52
+ searchDelay = 300;
53
+ } else {
54
+ searchDelay = 0;
55
+ }
56
+ }
57
+
58
+ function search(e) {
59
+ const highlighter = new Mark(document.querySelector('#content'));
60
+ const searchInput = document.querySelector('#search-input');
61
+
62
+ searchResults.classList.add('visible');
63
+
64
+ // begin searching when query is 2 chars
65
+ if (searchInput.value.length > 1) {
66
+
67
+ // highlight search terms on current page
68
+ highlighter.unmark({
69
+ done: function(){
70
+ highlighter.mark(searchInput.value);
71
+ }
72
+ });
73
+
74
+ const results = index.search(searchInput.value).filter(function (r) {
75
+ return r.score > 0.0001;
76
+ });
77
+
78
+ if (results.length) {
79
+ searchResults.innerHTML = '';
80
+ let resultsList = '';
81
+
82
+ results.forEach(result => {
83
+ let label = result.ref.slice(0, -5);
84
+ label = label === 'index' ? 'Home' : label;
85
+ resultsList += `<li class="search-result" onclick="goToLocation('${result.ref}');">${label}</li>`;
86
+ });
87
+
88
+ // set results list HTML
89
+ searchResults.innerHTML = resultsList;
90
+ } else {
91
+ searchResults.innerHTML = `<li>No Results Found for: ${searchInput.value}</li>`;
92
+ }
93
+ } else {
94
+ highlighter.unmark();
95
+ searchResults.innerHTML = '';
96
+ searchResults.classList.remove('visible');
97
+ }
98
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) NCR Terafina
3
+ **/
4
+ declare class ApexDoxError extends Error {
5
+ static INVALID_SCOPE: string;
6
+ static SCOPE_ENTRIES_MAX: string;
7
+ static SCOPE_ENTRIES_MIN: string;
8
+ static INVALID_DIRECTORY: (arg: string, path: string) => string;
9
+ static INVALID_SORT_ORDER: (sortOrder: string) => string;
10
+ static INVALID_PORT: (port: number) => string;
11
+ static INVALID_SOURCE_URL: (url: string) => string;
12
+ static INVALID_TARGET_DIRECTORY: (path: string) => string;
13
+ static ONLY_STRINGS: (arg: string) => string;
14
+ static SCOPE_ENTRY_INVALID: (entry: string) => string;
15
+ static INVALID_TYPE: (arg: string, type: string) => string;
16
+ static NO_FILES_FOUND: (sourceDirs: string) => string;
17
+ static ASSET_NOT_FOUND: (asset: string) => string;
18
+ static INVALID_EXTENSION: (arg: string, path: string, extension: string) => string;
19
+ static INVALID_SEE_QUALIFIER: string;
20
+ static CONFIG_PARSE_ERROR: (fileName: string) => string;
21
+ static UNKNOWN_CONFIG_SETTING: (field: string) => string;
22
+ }
23
+ export default ApexDoxError;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Copyright (c) NCR Terafina
5
+ **/
6
+ class ApexDoxError extends Error {
7
+ }
8
+ ApexDoxError.INVALID_SCOPE = 'Please provide an array of valid scopes. Valid scopes include: global, public, protected, private, testMethod, and webService';
9
+ ApexDoxError.SCOPE_ENTRIES_MAX = `scope' parameter has too many entries. ${ApexDoxError.INVALID_SCOPE}`;
10
+ ApexDoxError.SCOPE_ENTRIES_MIN = `'scope' parameter must have at least one entry. ${ApexDoxError.INVALID_SCOPE}`;
11
+ ApexDoxError.INVALID_DIRECTORY = (arg, path) => `Value for '${arg}' parameter: '${path}' is invalid. Please provide a valid directory.`;
12
+ ApexDoxError.INVALID_SORT_ORDER = (sortOrder) => `Value for 'sortOrder' parameter '${sortOrder}' is invalid. Options for this parameter are: 'logical' or 'alpha'.`;
13
+ ApexDoxError.INVALID_PORT = (port) => `Value for 'port' parameter '${port}' is invalid. Please provide a valid port number.`;
14
+ ApexDoxError.INVALID_SOURCE_URL = (url) => `Value for 'source.sourceUrl' parameter '${url}' is invalid. Please provide a valid URL where your source ` +
15
+ "code is hosted, e.g.: 'https://github.com/no-stack-dub-sack/salesforce-project/tree/master/src/classes'";
16
+ ApexDoxError.INVALID_TARGET_DIRECTORY = (path) => `Value for 'targetDirectory' parameter: '${path}' is invalid. Please provide a valid path.`;
17
+ ApexDoxError.ONLY_STRINGS = (arg) => `'${arg}' parameter's array may only contain strings.`;
18
+ ApexDoxError.SCOPE_ENTRY_INVALID = (entry) => `Entry for 'scope' parameter: '${entry}' is invalid. ${ApexDoxError.INVALID_SCOPE}`;
19
+ ApexDoxError.INVALID_TYPE = (arg, type) => `Value for '${arg}' parameter is incorrect type. Expected '${type}'`;
20
+ ApexDoxError.NO_FILES_FOUND = (sourceDirs) => `No matching .cls files found in ${sourceDirs}`;
21
+ ApexDoxError.ASSET_NOT_FOUND = (asset) => `Asset '${asset}' could not be copied to the target directory. Did you provide a fully qualified file name?`;
22
+ ApexDoxError.INVALID_EXTENSION = (arg, path, extension) => `Expected a '${extension}' file for paramter '${arg}'. Instead got '${path}'`;
23
+ ApexDoxError.INVALID_SEE_QUALIFIER = 'The value for each @see tag must be a URL, markdown URL or fully qualified class or method name ' +
24
+ '(e.g. MyClass, MyClass.MyMethod, MyClass.MyInnerClass.MyInnerClassMethod).';
25
+ ApexDoxError.CONFIG_PARSE_ERROR = (fileName) => `Failed to parse ${fileName}. Check for syntax errors. See more information on ${fileName} config files.`;
26
+ ApexDoxError.UNKNOWN_CONFIG_SETTING = (field) => `Unknown configuration setting '${field}' found. Please check your settings file.`;
27
+ exports.default = ApexDoxError;
28
+ //# sourceMappingURL=apex-docs-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apex-docs-error.js","sourceRoot":"","sources":["../../../src/apexdoc/common/apex-docs-error.ts"],"names":[],"mappings":";;AAAA;;IAEI;AACJ,MAAM,YAAa,SAAQ,KAAK;;AAChB,0BAAa,GACzB,+HAA+H,CAAC;AACpH,8BAAiB,GAAG,0CAA0C,YAAY,CAAC,aAAa,EAAE,CAAC;AAC3F,8BAAiB,GAAG,mDAAmD,YAAY,CAAC,aAAa,EAAE,CAAC;AAEpG,8BAAiB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAC9D,cAAc,GAAG,iBAAiB,IAAI,iDAAiD,CAAC;AAE5E,+BAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,oCAAoC,SAAS,qEAAqE,CAAC;AAEvG,yBAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,+BAA+B,IAAI,mDAAmD,CAAC;AAExH,+BAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CACjD,2CAA2C,GAAG,6DAA6D;IAC3G,yGAAyG,CAAC;AAE9F,qCAAwB,GAAG,CAAC,IAAY,EAAE,EAAE,CACxD,2CAA2C,IAAI,4CAA4C,CAAC;AAEhF,yBAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,GAAG,+CAA+C,CAAC;AAEvF,gCAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CACpD,iCAAiC,KAAK,iBAAiB,YAAY,CAAC,aAAa,EAAE,CAAC;AAExE,yBAAY,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,cAAc,GAAG,4CAA4C,IAAI,GAAG,CAAC;AAEnH,2BAAc,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,mCAAmC,UAAU,EAAE,CAAC;AAEzF,4BAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAChD,UAAU,KAAK,6FAA6F,CAAC;AAEjG,8BAAiB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,SAAiB,EAAE,EAAE,CACjF,eAAe,SAAS,wBAAwB,GAAG,mBAAmB,IAAI,GAAG,CAAC;AAElE,kCAAqB,GACjC,kGAAkG;IAClG,4EAA4E,CAAC;AAEjE,+BAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE,CACtD,mBAAmB,QAAQ,sDAAsD,QAAQ,gBAAgB,CAAC;AAE9F,mCAAsB,GAAG,CAAC,KAAa,EAAE,EAAE,CACvD,kCAAkC,KAAK,2CAA2C,CAAC;AAGvF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) NCR Terafina
3
+ **/
4
+ import { IOnlyExcept } from '../index';
5
+ export declare const last: <T>(arr: T[]) => T;
6
+ export declare const head: <T>(arr: T[]) => T;
7
+ export declare const tail: <T>(arr: T[]) => T[];
8
+ export declare const except: IOnlyExcept;
9
+ export declare const only: IOnlyExcept;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.only = exports.except = exports.tail = exports.head = exports.last = void 0;
4
+ const last = (arr) => (arr.length > 1 ? arr[arr.length - 1] : arr[0]);
5
+ exports.last = last;
6
+ const head = (arr) => arr[0];
7
+ exports.head = head;
8
+ const tail = (arr) => (arr.length > 1 ? arr.slice(1) : arr);
9
+ exports.tail = tail;
10
+ const except = (arr, by, on) => {
11
+ if (on) {
12
+ by.forEach(byEl => {
13
+ arr = arr.filter(o => o[on] !== byEl);
14
+ });
15
+ return arr;
16
+ }
17
+ by.forEach(byEl => {
18
+ arr = arr.filter(el => el !== byEl);
19
+ });
20
+ return arr;
21
+ };
22
+ exports.except = except;
23
+ const only = (arr, by, on) => {
24
+ if (on) {
25
+ by.forEach(byEl => {
26
+ arr = arr.filter(o => o[on] === byEl);
27
+ });
28
+ return arr;
29
+ }
30
+ by.forEach(byEl => {
31
+ arr = arr.filter(el => el === byEl);
32
+ });
33
+ return arr;
34
+ };
35
+ exports.only = only;
36
+ //# sourceMappingURL=array-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../../../src/apexdoc/common/array-utils.ts"],"names":[],"mappings":";;;AAKO,MAAM,IAAI,GAAG,CAAI,GAAQ,EAAK,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAA3E,QAAA,IAAI,QAAuE;AAEjF,MAAM,IAAI,GAAG,CAAI,GAAQ,EAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAAlC,QAAA,IAAI,QAA8B;AAExC,MAAM,IAAI,GAAG,CAAI,GAAQ,EAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAAnE,QAAA,IAAI,QAA+D;AAEzE,MAAM,MAAM,GAAgB,CAAuB,GAAQ,EAAE,EAAgB,EAAE,EAAM,EAAE,EAAE;IAC9F,IAAI,EAAE,EAAE;QACG,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;KACZ;IAEK,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAdW,QAAA,MAAM,UAcjB;AAEK,MAAM,IAAI,GAAgB,CAAuB,GAAQ,EAAE,EAAgB,EAAE,EAAM,EAAE,EAAE;IAC5F,IAAI,EAAE,EAAE;QACG,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;KACZ;IAEK,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAdW,QAAA,IAAI,QAcf"}
@@ -0,0 +1,40 @@
1
+ import { Option } from '../index';
2
+ /**
3
+ * A utility class similar to C#'s LineReader for synchronously reading a file line by line.
4
+ * Uses Node's `readFileSync` to produce an array of lines and implements a simple iterator
5
+ * to advance through them. This may be less space efficient than using Node's native line
6
+ * reader, however, it keeps things synchronous, and avoids callbacks.
7
+ */
8
+ declare class LineReader {
9
+ private lines;
10
+ private nextIndex;
11
+ private end;
12
+ private content;
13
+ constructor(filePath: string);
14
+ /**
15
+ * Returns the next line and advances the reader a single step.
16
+ * @returns The next line, or null if there is no next line.
17
+ */
18
+ readLine(): Option<string, null>;
19
+ /**
20
+ * Returns the previous line without affecting the reader's position.
21
+ * @returns String, the previous line, or null if there is no previous line.
22
+ */
23
+ peekPrevLine(): Option<string, null>;
24
+ /**
25
+ * Returns the next line without advancing the reader.
26
+ * @returns String, the next line, or null if there is no next line.
27
+ */
28
+ peekNextLine(): Option<string, null>;
29
+ /**
30
+ * Convert the line reader's lines into a single string.
31
+ * @param trim A flag for determining whether or not white space
32
+ * between lines should be trimmed before concatenating into a
33
+ * single string.
34
+ * @param separator The character to join the lines by. Defaults to ''.
35
+ */
36
+ toString(trim?: boolean, separator?: string): string;
37
+ toContent(): string;
38
+ toArray(): string[];
39
+ }
40
+ export default LineReader;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * Copyright (c) NCR Terafina
6
+ **/
7
+ const apex_docs_error_1 = tslib_1.__importDefault(require("./apex-docs-error"));
8
+ const fs_1 = require("fs");
9
+ /**
10
+ * A utility class similar to C#'s LineReader for synchronously reading a file line by line.
11
+ * Uses Node's `readFileSync` to produce an array of lines and implements a simple iterator
12
+ * to advance through them. This may be less space efficient than using Node's native line
13
+ * reader, however, it keeps things synchronous, and avoids callbacks.
14
+ */
15
+ class LineReader {
16
+ constructor(filePath) {
17
+ this.nextIndex = 0;
18
+ try {
19
+ // NOTE: could use Node's os.EOL constant instead of the regexp
20
+ // but hesitant because user could have EOL set contrary to the
21
+ // platform they're on in . This might be safer in the end.
22
+ const EOL = /(?:\r\n|[\r\n])/;
23
+ this.content = fs_1.readFileSync(filePath).toString('utf8');
24
+ this.lines = this.content.split(EOL);
25
+ this.end = this.lines.length;
26
+ }
27
+ catch (e) {
28
+ throw new apex_docs_error_1.default(e);
29
+ }
30
+ }
31
+ /**
32
+ * Returns the next line and advances the reader a single step.
33
+ * @returns The next line, or null if there is no next line.
34
+ */
35
+ readLine() {
36
+ let result;
37
+ if (this.nextIndex < this.end) {
38
+ result = this.lines[this.nextIndex];
39
+ this.nextIndex++;
40
+ return result;
41
+ }
42
+ this.lines = [];
43
+ return null;
44
+ }
45
+ /**
46
+ * Returns the previous line without affecting the reader's position.
47
+ * @returns String, the previous line, or null if there is no previous line.
48
+ */
49
+ peekPrevLine() {
50
+ if (this.nextIndex - 1 > 0) {
51
+ return this.lines[this.nextIndex - 2];
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * Returns the next line without advancing the reader.
57
+ * @returns String, the next line, or null if there is no next line.
58
+ */
59
+ peekNextLine() {
60
+ if (this.nextIndex + 1 < this.end) {
61
+ return this.lines[this.nextIndex + 2];
62
+ }
63
+ return null;
64
+ }
65
+ /**
66
+ * Convert the line reader's lines into a single string.
67
+ * @param trim A flag for determining whether or not white space
68
+ * between lines should be trimmed before concatenating into a
69
+ * single string.
70
+ * @param separator The character to join the lines by. Defaults to ''.
71
+ */
72
+ toString(trim = false, separator = '') {
73
+ if (this.lines.length) {
74
+ if (trim) {
75
+ return this.lines.reduce((a, b) => a.trim() + b.trim());
76
+ }
77
+ return this.lines.join(separator);
78
+ }
79
+ return '';
80
+ }
81
+ toContent() {
82
+ return this.content;
83
+ }
84
+ toArray() {
85
+ if (this.lines) {
86
+ return this.lines;
87
+ }
88
+ return [];
89
+ }
90
+ }
91
+ exports.default = LineReader;
92
+ //# sourceMappingURL=line-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-reader.js","sourceRoot":"","sources":["../../../src/apexdoc/common/line-reader.ts"],"names":[],"mappings":";;;AAAA;;IAEI;AACJ,gFAA6C;AAE7C,2BAAkC;AAElC;;;;;GAKG;AACH,MAAM,UAAU;IAMd,YAAmB,QAAgB;QAJ3B,cAAS,GAAG,CAAC,CAAC;QAKpB,IAAI;YACF,+DAA+D;YAC/D,+DAA+D;YAC/D,2DAA2D;YAC3D,MAAM,GAAG,GAAG,iBAAiB,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,iBAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC9B;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,yBAAY,CAAC,CAAC,CAAC,CAAC;SAC3B;IACH,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;SACf;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;YACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,IAAI,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACzD;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Option } from '../..';
2
+ declare abstract class ApexModel {
3
+ protected _annotations: string[];
4
+ protected _author: string;
5
+ protected _deprecated: string;
6
+ protected _description: string;
7
+ protected _example: string;
8
+ protected _apipath: string;
9
+ protected _restUrl: string;
10
+ protected _apimethod: string;
11
+ protected _exception: string[];
12
+ protected _groupContentPath: string;
13
+ protected _groupName: string;
14
+ protected _tags: string;
15
+ protected _lineNum: number;
16
+ protected _nameLine: string;
17
+ protected _params: string[];
18
+ protected _queryparams: string[];
19
+ protected _requestheaders: string[];
20
+ protected _responseheaders: string[];
21
+ protected _returns: string;
22
+ protected _scope: string;
23
+ protected _see: string[];
24
+ protected _since: string;
25
+ protected _sourceUrl?: string;
26
+ protected _source: string;
27
+ protected constructor(comments: string[], sourceUrl: Option<string>);
28
+ abstract get name(): string;
29
+ get annotations(): string[];
30
+ get description(): string;
31
+ get lineNum(): number;
32
+ get nameLine(): string;
33
+ get scope(): string;
34
+ get sourceUrl(): Option<string>;
35
+ get source(): string;
36
+ setSource(source: string): void;
37
+ get example(): string;
38
+ get apipath(): string;
39
+ get restUrl(): string;
40
+ get apimethod(): string;
41
+ get deprecated(): string;
42
+ get see(): string[];
43
+ /**
44
+ * This method is based closely on: https://gitlab.com/StevenWCox/sfapexdoc/blob/master/src/apex/com/main/Model.java#L196
45
+ */
46
+ private parseComments;
47
+ parseAnnotations(line: string, previousLine: Option<string, null>): void;
48
+ protected parseScope(): void;
49
+ protected setNameLine(_nameLine: string, _lineNum: number): void;
50
+ }
51
+ export { ApexModel };