diff --git a/.gitignore b/.gitignore index 319d3f3f5..f93a7a1e5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /coverage/ /cypress/ /dist/ +/docs/shepherd.js/ /esdoc/ /node_modules/ /test/unit/dist diff --git a/.jsdoc.js b/.jsdoc.js new file mode 100644 index 000000000..181d05724 --- /dev/null +++ b/.jsdoc.js @@ -0,0 +1,39 @@ +'use strict'; + +module.exports = { + tags: { + allowUnknownTags: true, + dictionaries: ['jsdoc'] + }, + source: { + include: [ + 'package.json', + 'README.md', + './src/js/shepherd.js', + './src/js/step.js', + './src/js/tour.js' + ] + }, + plugins: [ + 'plugins/markdown' + ], + sourceType: 'module', + templates: { + referenceTitle: 'Shepherd.js', + // Do not disable sorting + disableSort: false, + // Do not collapse, show all methods + collapse: false + // 'resources': { + // 'google': 'https://www.google.com/' + // } + }, + opts: { + destination: './docs/', + encoding: 'utf8', + // Do not include functions marked `@private` + private: false, + recurse: true, + template: './node_modules/jsdoc-template' + } +}; diff --git a/.travis.yml b/.travis.yml index 8725a02a5..e96056fd0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -92,7 +92,7 @@ jobs: - yarn esdoc before_deploy: - git add -f --all dist/ - - git add -f --all esdoc/ + - git add -f --all docs/ deploy: provider: pages skip-cleanup: true diff --git a/package.json b/package.json index 433908ea9..68a262dd0 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ ], "scripts": { "build": "yarn clean && rollup -c", + "docs": "node_modules/.bin/jsdoc -c .jsdoc.js --verbose", "esdoc": "esdoc", "changelog": "github_changelog_generator -u shipshapecode -p shepherd --since-tag v2.9.0", "clean": "rimraf dist", @@ -49,6 +50,7 @@ "dependencies": { "body-scroll-lock": "^2.6.3", "element-matches": "^0.1.2", + "jsdoc": "^3.6.2", "smoothscroll-polyfill": "^0.4.4", "tippy.js": "^5.0.0-alpha.2" }, @@ -62,6 +64,7 @@ "babel-jest": "^24.7.1", "babel-plugin-rewire-exports": "^1.2.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", + "better-docs": "^1.1.6", "chai": "^4.2.0", "codeclimate-test-reporter": "^0.5.1", "cssnano": "^4.1.10", @@ -79,6 +82,8 @@ "jest": "^24.8.0", "jest-expect-message": "^1.0.2", "jest-transform-css": "^2.0.0", + "jsdoc-mermaid": "^1.0.0", + "jsdoc-template": "https://github.com/braintree/jsdoc-template", "mutationobserver-shim": "^0.3.3", "postcss": "^7.0.14", "replace": "^1.1.0", diff --git a/src/js/step.js b/src/js/step.js index 068c73338..3d05f73e2 100644 --- a/src/js/step.js +++ b/src/js/step.js @@ -12,8 +12,8 @@ smoothscroll.polyfill(); /** * Creates incremented ID for each newly created step * + * @return {Function} A function that returns the unique id for the step * @private - * @return {Number} The unique id for the step */ const uniqueId = (function() { let id = 0; @@ -128,11 +128,160 @@ export class Step extends Evented { return this; } + /** + * Cancel the tour + * Triggers the `cancel` event + */ + cancel() { + this.tour.cancel(); + this.trigger('cancel'); + } + + /** + * Complete the tour + * Triggers the `complete` event + */ + complete() { + this.tour.complete(); + this.trigger('complete'); + } + + /** + * Remove the step, delete the step's element, and destroy the tippy instance for the step + * Triggers `destroy` event + */ + destroy() { + if (this.tooltip) { + this.tooltip.destroy(); + this.tooltip = null; + } + + if (isElement(this.el) && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + this.el = null; + } + + if (this.target) { + this._updateStepTargetOnHide(); + } + + this.trigger('destroy'); + } + + /** + * Returns the tour for the step + * @return {Tour} The tour instance + */ + getTour() { + return this.tour; + } + + /** + * Hide the step and destroy the tippy instance + */ + hide() { + this.tour.modal.hide(); + + this.trigger('before-hide'); + + document.body.removeAttribute('data-shepherd-step'); + + if (this.target) { + this._updateStepTargetOnHide(); + } + + if (this.tooltip) { + this.tooltip.hide(); + } + + this.trigger('hide'); + } + + /** + * Check if the step is open and visible + * @return {boolean} True if the step is open and visible + */ + isOpen() { + return Boolean( + this.tooltip && + this.tooltip.state && + this.tooltip.state.isVisible + ); + } + + /** + * Create the element and set up the tippy instance + */ + setupElements() { + if (!isUndefined(this.el)) { + this.destroy(); + } + + this.el = this._createTooltipContent(); + + this._addKeyDownHandler(this.el); + + if (this.options.advanceOn) { + this.bindAdvance(); + } + + this.setupTooltip(); + } + + /** + * If a custom scrollToHandler is defined, call that, otherwise do the generic + * scrollIntoView call. + * + * @param {boolean|Object} scrollToOptions If true, uses the default `scrollIntoView`, + * if an object, passes that object as the params to `scrollIntoView` i.e. `{ behavior: 'smooth', block: 'center' }` + */ + scrollTo(scrollToOptions) { + const { element } = this.parseAttachTo(); + + if (isFunction(this.options.scrollToHandler)) { + this.options.scrollToHandler(element); + } else if (isElement(element)) { + element.scrollIntoView(scrollToOptions); + } + } + + /** + * Sets the options for the step, maps `when` to events, sets up buttons + * @param {Object} options The options for the step + */ + setOptions(options = {}) { + this.options = options; + const { when } = this.options; + + this.destroy(); + this.id = this.options.id || `step-${uniqueId()}`; + + if (when) { + Object.entries(when).forEach(([event, handler]) => { + this.on(event, handler, this); + }); + } + } + + /** + * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show + * @return {*|Promise} + */ + show() { + if (isFunction(this.options.beforeShowPromise)) { + const beforeShowPromise = this.options.beforeShowPromise(); + if (!isUndefined(beforeShowPromise)) { + return beforeShowPromise.then(() => this._show()); + } + } + this._show(); + } + /** * Adds buttons to the step as passed into options * - * @private * @param {HTMLElement} content The element for the step, to append the footer with buttons to + * @private */ _addButtons(content) { if (Array.isArray(this.options.buttons) && this.options.buttons.length) { @@ -171,10 +320,10 @@ export class Step extends Evented { /** * Adds text passed in as options * - * @private * @param {HTMLElement} content The content to append the text to * @param {string} descriptionId The id to set on the shepherd-text element * for the parent element to use for aria-describedby + * @private */ _addContent(content, descriptionId) { const text = createFromHTML( @@ -260,8 +409,8 @@ export class Step extends Evented { /** * Creates Shepherd element for step based on options * - * @private * @return {HTMLElement} The DOM element for the step tooltip + * @private */ _createTooltipContent() { const content = document.createElement('div'); @@ -301,155 +450,6 @@ export class Step extends Evented { return element; } - /** - * Returns the tour for the step - * @return {Tour} The tour instance - */ - getTour() { - return this.tour; - } - - /** - * Cancel the tour - * Triggers the `cancel` event - */ - cancel() { - this.tour.cancel(); - this.trigger('cancel'); - } - - /** - * Complete the tour - * Triggers the `complete` event - */ - complete() { - this.tour.complete(); - this.trigger('complete'); - } - - /** - * Remove the step, delete the step's element, and destroy the tippy instance for the step - * Triggers `destroy` event - */ - destroy() { - if (this.tooltip) { - this.tooltip.destroy(); - this.tooltip = null; - } - - if (isElement(this.el) && this.el.parentNode) { - this.el.parentNode.removeChild(this.el); - this.el = null; - } - - if (this.target) { - this._updateStepTargetOnHide(); - } - - this.trigger('destroy'); - } - - /** - * Hide the step and destroy the tippy instance - */ - hide() { - this.tour.modal.hide(); - - this.trigger('before-hide'); - - document.body.removeAttribute('data-shepherd-step'); - - if (this.target) { - this._updateStepTargetOnHide(); - } - - if (this.tooltip) { - this.tooltip.hide(); - } - - this.trigger('hide'); - } - - /** - * Check if the step is open and visible - * @return {boolean} True if the step is open and visible - */ - isOpen() { - return Boolean( - this.tooltip && - this.tooltip.state && - this.tooltip.state.isVisible - ); - } - - /** - * Create the element and set up the tippy instance - */ - setupElements() { - if (!isUndefined(this.el)) { - this.destroy(); - } - - this.el = this._createTooltipContent(); - - this._addKeyDownHandler(this.el); - - if (this.options.advanceOn) { - this.bindAdvance(); - } - - this.setupTooltip(); - } - - /** - * If a custom scrollToHandler is defined, call that, otherwise do the generic - * scrollIntoView call. - * - * @param {boolean|Object} scrollToOptions If true, uses the default `scrollIntoView`, - * if an object, passes that object as the params to `scrollIntoView` i.e. `{ behavior: 'smooth', block: 'center' }` - */ - scrollTo(scrollToOptions) { - const { element } = this.parseAttachTo(); - - if (isFunction(this.options.scrollToHandler)) { - this.options.scrollToHandler(element); - } else if (isElement(element)) { - element.scrollIntoView(scrollToOptions); - } - } - - /** - * Sets the options for the step, maps `when` to events, sets up buttons - * @param {Object} options The options for the step - */ - setOptions(options = {}) { - this.options = options; - const { when } = this.options; - - this.destroy(); - this.id = this.options.id || `step-${uniqueId()}`; - - if (when) { - Object.entries(when).forEach(([event, handler]) => { - this.on(event, handler, this); - }); - } - } - - /** - * Wraps `_show` and ensures `beforeShowPromise` resolves before calling show - * @return {*|Promise} - */ - show() { - if (isFunction(this.options.beforeShowPromise)) { - const beforeShowPromise = this.options.beforeShowPromise(); - if (!isUndefined(beforeShowPromise)) { - return beforeShowPromise.then(() => this._show()); - } - } - this._show(); - } - /** * Triggers `before-show`, generates the tooltip DOM content, * sets up a tippy instance for the tooltip, then triggers `show`. diff --git a/src/js/tour.js b/src/js/tour.js index 8b4a42ff2..0e7a624bb 100644 --- a/src/js/tour.js +++ b/src/js/tour.js @@ -14,8 +14,8 @@ import { toggleShepherdModalClass } from './utils/modal'; /** * Creates incremented ID for each newly created tour * + * @return {Function} A function that returns the unique id for the tour * @private - * @return {Number} The unique id for the tour */ const uniqueId = (function() { let id = 0; diff --git a/src/js/utils/general.js b/src/js/utils/general.js index 5620c122b..b1e593cdd 100644 --- a/src/js/utils/general.js +++ b/src/js/utils/general.js @@ -109,7 +109,7 @@ export function setupTooltip() { /** * Checks if options.attachTo.element is a string, and if so, tries to find the element - * @returns {({} & {element, on}) | ({})} + * @returns {{element, on}} * `element` is a qualified HTML Element * `on` is a string position value */ diff --git a/yarn.lock b/yarn.lock index 6c4ae3798..88f3285f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1682,6 +1682,11 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" +better-docs@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/better-docs/-/better-docs-1.1.6.tgz#c86473b7ffc2c4abf031e561da0b0b382a0a4f9a" + integrity sha512-2mSRSThIIIM/RLatcrFRfTJ6tKNGV8vzSLmM/2hWOwDZWtsyG9WttrQpzmA/izCcqxL0o8DpKfjlAxq8fuaHSw== + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1710,7 +1715,7 @@ bluebird@3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= -bluebird@3.5.5: +bluebird@3.5.5, bluebird@^3.5.4: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== @@ -2019,6 +2024,13 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +catharsis@^0.8.10: + version "0.8.10" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.10.tgz#364198c1fbf084ae17028ee33ec7db53ca942ee6" + integrity sha512-l2OUaz/3PU3MZylspVFJvwHCVfWyvcduPq4lv3AzZ2pJzZCo7kNKFNyatwujD7XgvGkNAE/Jhhbh2uARNwNkfw== + dependencies: + lodash "^4.17.11" + ccount@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" @@ -2997,6 +3009,13 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +doctrine@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -3260,6 +3279,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escodegen@^1.6.1, escodegen@^1.9.1: version "1.11.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" @@ -5530,11 +5554,49 @@ js-yaml@^3.13.1, js-yaml@^3.9.0: argparse "^1.0.7" esprima "^4.0.0" +js2xmlparser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.0.tgz#ae14cc711b2892083eed6e219fbc993d858bc3a5" + integrity sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw== + dependencies: + xmlcreate "^2.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdoc-mermaid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-mermaid/-/jsdoc-mermaid-1.0.0.tgz#793f319d9f8658c6a15d1ce77f77de4c50fd5905" + integrity sha1-eT8xnZ+GWMahXRznf3feTFD9WQU= + dependencies: + doctrine "^2.0.0" + +"jsdoc-template@https://github.com/braintree/jsdoc-template": + version "3.3.0" + resolved "https://github.com/braintree/jsdoc-template#f919b0c422b19f1b639fb7a8e2a999f79dae4a27" + +jsdoc@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.2.tgz#ee289fc6ba9263b7e4eceb99921179fe1c31489a" + integrity sha512-S2vzg99C5+gb7FWlrK4TVdyzVPGGkdvpDkCEJH1JABi2PKzPeLu5/zZffcJUifgWUJqXWl41Hoc+MmuM2GukIg== + dependencies: + "@babel/parser" "^7.4.4" + bluebird "^3.5.4" + catharsis "^0.8.10" + escape-string-regexp "^2.0.0" + js2xmlparser "^4.0.0" + klaw "^3.0.0" + markdown-it "^8.4.2" + markdown-it-anchor "^5.0.2" + marked "^0.6.2" + mkdirp "^0.5.1" + requizzle "^0.2.2" + strip-json-comments "^3.0.1" + taffydb "2.6.2" + underscore "~1.9.1" + jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -5707,6 +5769,13 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +klaw@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== + dependencies: + graceful-fs "^4.1.9" + kleur@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -5769,6 +5838,13 @@ limiter@^1.0.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.4.tgz#87c9c3972d389fdb0ba67a45aadbc5d2f8413bc1" integrity sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg== +linkify-it@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.1.0.tgz#c4caf38a6cd7ac2212ef3c7d2bde30a91561f9db" + integrity sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg== + dependencies: + uc.micro "^1.0.1" + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -6104,6 +6180,22 @@ markdown-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== +markdown-it-anchor@^5.0.2: + version "5.2.4" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz#d39306fe4c199705b4479d3036842cf34dcba24f" + integrity sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A== + +markdown-it@^8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" + integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + markdown-table@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" @@ -6114,6 +6206,11 @@ marked@0.3.19: resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== +marked@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946" + integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ== + matched@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/matched/-/matched-1.0.2.tgz#1d95d77dd5f1b5075a9e94acde5462ffd85f317a" @@ -6143,6 +6240,11 @@ mdn-data@~1.1.0: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + mem@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" @@ -8089,6 +8191,13 @@ requires-port@1.x.x, requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +requizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.2.tgz#df991c0cffbbbdde721504c1455f68f53f7c7bd1" + integrity sha512-oJ6y7JcUJkblRGhMByGNcszeLgU0qDxNKFCiUZR1XyzHyVsev+Mxb1tyygxLd1ORsKee1SA5BInFdUwY64GE/A== + dependencies: + lodash "^4.17.11" + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -9031,6 +9140,11 @@ strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + style-inject@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" @@ -9229,6 +9343,11 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= + taffydb@2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.2.tgz#7bf8106a5c1a48251b3e3bc0a0e1732489fd0dc8" @@ -9519,6 +9638,11 @@ ua-parser-js@0.7.17: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" integrity sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g== +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + uglify-js@^3.1.4: version "3.6.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" @@ -9532,6 +9656,11 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== +underscore@~1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + unherit@^1.0.4: version "1.1.2" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" @@ -9957,6 +10086,11 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xmlcreate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.1.tgz#2ec38bd7b708d213fd1a90e2431c4af9c09f6a52" + integrity sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA== + xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"