mirror of
https://github.com/tenrok/vue-meta.git
synced 2026-06-24 23:40:34 +03:00
feat: add es build
fix: add global window detection chore: update deps
This commit is contained in:
@@ -39,6 +39,7 @@ package-lock.json
|
|||||||
|
|
||||||
# built code
|
# built code
|
||||||
lib
|
lib
|
||||||
|
es
|
||||||
|
|
||||||
# examples yarn lock
|
# examples yarn lock
|
||||||
examples/yarn.lock
|
examples/yarn.lock
|
||||||
|
|||||||
+4
-2
@@ -5,7 +5,7 @@
|
|||||||
"author": "Declan de Wet <declandewet@me.com>",
|
"author": "Declan de Wet <declandewet@me.com>",
|
||||||
"bugs": "https://github.com/nuxt/vue-meta/issues",
|
"bugs": "https://github.com/nuxt/vue-meta/issues",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rimraf lib && rollup -c scripts/rollup.config.js",
|
"build": "scripts/build.sh",
|
||||||
"codecov": "codecov",
|
"codecov": "codecov",
|
||||||
"deploy": "npm version",
|
"deploy": "npm version",
|
||||||
"dev": "cd examples && npm run dev && cd ..",
|
"dev": "cd examples && npm run dev && cd ..",
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
"vue-hooks": "^0.3.2"
|
"vue-hooks": "^0.3.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/cli": "^7.2.3",
|
||||||
"@babel/core": "^7.3.3",
|
"@babel/core": "^7.3.3",
|
||||||
"@babel/node": "^7.2.2",
|
"@babel/node": "^7.2.2",
|
||||||
"@babel/preset-env": "^7.3.1",
|
"@babel/preset-env": "^7.3.1",
|
||||||
@@ -67,6 +68,7 @@
|
|||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"lib",
|
"lib",
|
||||||
|
"es",
|
||||||
"types/index.d.ts",
|
"types/index.d.ts",
|
||||||
"types/vue.d.ts"
|
"types/vue.d.ts"
|
||||||
],
|
],
|
||||||
@@ -88,7 +90,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "lib/vue-meta.common.js",
|
"main": "lib/vue-meta.common.js",
|
||||||
"web": "lib/vue-meta.js",
|
"web": "lib/vue-meta.js",
|
||||||
"module": "src/index.js",
|
"module": "es/index.js",
|
||||||
"typings": "types/index.d.ts",
|
"typings": "types/index.d.ts",
|
||||||
"repository": {
|
"repository": {
|
||||||
"url": "git@github.com/nuxt/vue-meta.git",
|
"url": "git@github.com/nuxt/vue-meta.git",
|
||||||
|
|||||||
@@ -48,8 +48,7 @@ export default [{
|
|||||||
output: {
|
output: {
|
||||||
...baseConfig.output,
|
...baseConfig.output,
|
||||||
file: pkg.main,
|
file: pkg.main,
|
||||||
format: 'cjs',
|
format: 'cjs'
|
||||||
intro: 'var window'
|
|
||||||
},
|
},
|
||||||
external: Object.keys(pkg.dependencies)
|
external: Object.keys(pkg.dependencies)
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { isUndefined } from '../shared/typeof'
|
import { hasGlobalWindow } from '../shared/window'
|
||||||
|
|
||||||
// fallback to timers if rAF not present
|
// fallback to timers if rAF not present
|
||||||
const stopUpdate = (!isUndefined(window) ? window.cancelAnimationFrame : null) || clearTimeout
|
const stopUpdate = (hasGlobalWindow ? window.cancelAnimationFrame : null) || clearTimeout
|
||||||
const startUpdate = (!isUndefined(window) ? window.requestAnimationFrame : null) || (cb => setTimeout(cb, 0))
|
const startUpdate = (hasGlobalWindow ? window.requestAnimationFrame : null) || (cb => setTimeout(cb, 0))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs a batched update. Uses requestAnimationFrame to prevent
|
* Performs a batched update. Uses requestAnimationFrame to prevent
|
||||||
|
|||||||
@@ -3,6 +3,14 @@ import { isFunction } from '../shared/typeof'
|
|||||||
import updateClientMetaInfo from './updateClientMetaInfo'
|
import updateClientMetaInfo from './updateClientMetaInfo'
|
||||||
|
|
||||||
export default function _refresh(options = {}) {
|
export default function _refresh(options = {}) {
|
||||||
|
const escapeSequences = [
|
||||||
|
[/&/g, '\u0026'],
|
||||||
|
[/</g, '\u003c'],
|
||||||
|
[/>/g, '\u003e'],
|
||||||
|
[/"/g, '\u0022'],
|
||||||
|
[/'/g, '\u0027']
|
||||||
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When called, will update the current meta info with new meta info.
|
* When called, will update the current meta info with new meta info.
|
||||||
* Useful when updating meta info as the result of an asynchronous
|
* Useful when updating meta info as the result of an asynchronous
|
||||||
@@ -14,7 +22,7 @@ export default function _refresh(options = {}) {
|
|||||||
* @return {Object} - new meta info
|
* @return {Object} - new meta info
|
||||||
*/
|
*/
|
||||||
return function refresh() {
|
return function refresh() {
|
||||||
const metaInfo = getMetaInfo(options, this.$root)
|
const metaInfo = getMetaInfo(options, this.$root, escapeSequences)
|
||||||
|
|
||||||
const tags = updateClientMetaInfo(options, metaInfo)
|
const tags = updateClientMetaInfo(options, metaInfo)
|
||||||
// emit "event" with new info
|
// emit "event" with new info
|
||||||
|
|||||||
@@ -3,6 +3,14 @@ import { metaInfoOptionKeys } from '../shared/constants'
|
|||||||
import generateServerInjector from './generateServerInjector'
|
import generateServerInjector from './generateServerInjector'
|
||||||
|
|
||||||
export default function _inject(options = {}) {
|
export default function _inject(options = {}) {
|
||||||
|
const escapeSequences = [
|
||||||
|
[/&/g, '&'],
|
||||||
|
[/</g, '<'],
|
||||||
|
[/>/g, '>'],
|
||||||
|
[/"/g, '"'],
|
||||||
|
[/'/g, ''']
|
||||||
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts the state of the meta info object such that each item
|
* Converts the state of the meta info object such that each item
|
||||||
* can be compiled to a tag string on the server
|
* can be compiled to a tag string on the server
|
||||||
@@ -10,10 +18,9 @@ export default function _inject(options = {}) {
|
|||||||
* @this {Object} - Vue instance - ideally the root component
|
* @this {Object} - Vue instance - ideally the root component
|
||||||
* @return {Object} - server meta info with `toString` methods
|
* @return {Object} - server meta info with `toString` methods
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return function inject() {
|
return function inject() {
|
||||||
// get meta info with sensible defaults
|
// get meta info with sensible defaults
|
||||||
const metaInfo = getMetaInfo(options, this.$root)
|
const metaInfo = getMetaInfo(options, this.$root, escapeSequences)
|
||||||
|
|
||||||
// generate server injectors
|
// generate server injectors
|
||||||
for (const key in metaInfo) {
|
for (const key in metaInfo) {
|
||||||
|
|||||||
@@ -1,25 +1,9 @@
|
|||||||
import deepmerge from 'deepmerge'
|
import deepmerge from 'deepmerge'
|
||||||
import isPlainObject from 'lodash.isplainobject'
|
import isPlainObject from 'lodash.isplainobject'
|
||||||
import { isUndefined, isFunction, isString } from '../shared/typeof'
|
import { isFunction, isString } from './typeof'
|
||||||
import isArray from './isArray'
|
import isArray from './isArray'
|
||||||
import getComponentOption from './getComponentOption'
|
import getComponentOption from './getComponentOption'
|
||||||
|
|
||||||
const escapeHTML = str => isUndefined(window)
|
|
||||||
// server-side escape sequence
|
|
||||||
? String(str)
|
|
||||||
.replace(/&/g, '&')
|
|
||||||
.replace(/</g, '<')
|
|
||||||
.replace(/>/g, '>')
|
|
||||||
.replace(/"/g, '"')
|
|
||||||
.replace(/'/g, ''')
|
|
||||||
// client-side escape sequence
|
|
||||||
: String(str)
|
|
||||||
.replace(/&/g, '\u0026')
|
|
||||||
.replace(/</g, '\u003c')
|
|
||||||
.replace(/>/g, '\u003e')
|
|
||||||
.replace(/"/g, '\u0022')
|
|
||||||
.replace(/'/g, '\u0027')
|
|
||||||
|
|
||||||
const applyTemplate = (component, template, chunk) =>
|
const applyTemplate = (component, template, chunk) =>
|
||||||
isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk)
|
isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk)
|
||||||
|
|
||||||
@@ -30,7 +14,7 @@ const applyTemplate = (component, template, chunk) =>
|
|||||||
* @param {Object} component - the Vue instance to get meta info from
|
* @param {Object} component - the Vue instance to get meta info from
|
||||||
* @return {Object} - returned meta info
|
* @return {Object} - returned meta info
|
||||||
*/
|
*/
|
||||||
export default function getMetaInfo({ keyName, tagIDKeyName, metaTemplateKeyName, contentKeyName } = {}, component) {
|
export default function getMetaInfo({ keyName, tagIDKeyName, metaTemplateKeyName, contentKeyName } = {}, component, escapeSequences = []) {
|
||||||
// set some sane defaults
|
// set some sane defaults
|
||||||
const defaultInfo = {
|
const defaultInfo = {
|
||||||
title: '',
|
title: '',
|
||||||
@@ -139,7 +123,7 @@ export default function getMetaInfo({ keyName, tagIDKeyName, metaTemplateKeyName
|
|||||||
|
|
||||||
if (!isDisabled) {
|
if (!isDisabled) {
|
||||||
if (isString(val)) {
|
if (isString(val)) {
|
||||||
escaped[key] = escapeHTML(val)
|
escaped[key] = escapeSequences.reduce((val, [v, r]) => val.replace(v, r), val)
|
||||||
} else if (isPlainObject(val)) {
|
} else if (isPlainObject(val)) {
|
||||||
escaped[key] = escape(val)
|
escaped[key] = escape(val)
|
||||||
} else if (isArray(val)) {
|
} else if (isArray(val)) {
|
||||||
|
|||||||
+8
-55
@@ -1,6 +1,6 @@
|
|||||||
import triggerUpdate from '../client/triggerUpdate'
|
import triggerUpdate from '../client/triggerUpdate'
|
||||||
import { isUndefined, isFunction } from '../shared/typeof'
|
import { isUndefined, isFunction } from './typeof'
|
||||||
import { ensuredPush } from '../shared/ensure'
|
import { ensuredPush } from './ensure'
|
||||||
|
|
||||||
export default function createMixin(options) {
|
export default function createMixin(options) {
|
||||||
// for which Vue lifecycle hooks should the metaInfo be refreshed
|
// for which Vue lifecycle hooks should the metaInfo be refreshed
|
||||||
@@ -35,10 +35,6 @@ export default function createMixin(options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateOnLifecycleHook.forEach((lifecycleHook) => {
|
|
||||||
ensuredPush(this.$options, lifecycleHook, () => triggerUpdate(this, lifecycleHook))
|
|
||||||
})
|
|
||||||
|
|
||||||
// force an initial refresh on page load and prevent other lifecycleHooks
|
// force an initial refresh on page load and prevent other lifecycleHooks
|
||||||
// to triggerUpdate until this initial refresh is finished
|
// to triggerUpdate until this initial refresh is finished
|
||||||
// this is to make sure that when a page is opened in an inactive tab which
|
// this is to make sure that when a page is opened in an inactive tab which
|
||||||
@@ -49,6 +45,7 @@ export default function createMixin(options) {
|
|||||||
if (!this.$root._vueMetaInitialized) {
|
if (!this.$root._vueMetaInitialized) {
|
||||||
ensuredPush(this.$options, 'mounted', () => {
|
ensuredPush(this.$options, 'mounted', () => {
|
||||||
if (!this.$root._vueMetaInitialized) {
|
if (!this.$root._vueMetaInitialized) {
|
||||||
|
// refresh meta in nextTick so all child components have loaded
|
||||||
this.$nextTick(function () {
|
this.$nextTick(function () {
|
||||||
this.$root.$meta().refresh()
|
this.$root.$meta().refresh()
|
||||||
this.$root._vueMetaInitialized = true
|
this.$root._vueMetaInitialized = true
|
||||||
@@ -60,6 +57,11 @@ export default function createMixin(options) {
|
|||||||
|
|
||||||
// do not trigger refresh on the server side
|
// do not trigger refresh on the server side
|
||||||
if (!this.$isServer) {
|
if (!this.$isServer) {
|
||||||
|
// no need to add this hooks on server side, there we only need the mounted hook above
|
||||||
|
updateOnLifecycleHook.forEach((lifecycleHook) => {
|
||||||
|
ensuredPush(this.$options, lifecycleHook, () => triggerUpdate(this, lifecycleHook))
|
||||||
|
})
|
||||||
|
|
||||||
// re-render meta data when returning from a child component to parent
|
// re-render meta data when returning from a child component to parent
|
||||||
ensuredPush(this.$options, 'destroyed', () => {
|
ensuredPush(this.$options, 'destroyed', () => {
|
||||||
// Wait that element is hidden before refreshing meta tags (to support animations)
|
// Wait that element is hidden before refreshing meta tags (to support animations)
|
||||||
@@ -80,54 +82,5 @@ export default function createMixin(options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Not yet removed
|
|
||||||
created() {
|
|
||||||
// if computed $metaInfo exists, watch it for updates & trigger a refresh
|
|
||||||
// when it changes (i.e. automatically handle async actions that affect metaInfo)
|
|
||||||
// credit for this suggestion goes to [Sébastien Chopin](https://github.com/Atinux)
|
|
||||||
if (!this.$isServer && this.$metaInfo) {
|
|
||||||
this.$watch('$metaInfo', () => triggerUpdate(this))
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
activated() {
|
|
||||||
if (this._hasMetaInfo) {
|
|
||||||
triggerUpdate(this)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
deactivated() {
|
|
||||||
if (this._hasMetaInfo) {
|
|
||||||
triggerUpdate(this)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeMount() {
|
|
||||||
if (this._hasMetaInfo) {
|
|
||||||
triggerUpdate(this)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
destroyed() {
|
|
||||||
// do not trigger refresh on the server side
|
|
||||||
if (this.$isServer) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// re-render meta data when returning from a child component to parent
|
|
||||||
if (this._hasMetaInfo) {
|
|
||||||
// Wait that element is hidden before refreshing meta tags (to support animations)
|
|
||||||
const interval = setInterval(() => {
|
|
||||||
if (this.$el && this.$el.offsetParent !== null) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
clearInterval(interval)
|
|
||||||
|
|
||||||
if (!this.$parent) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
triggerUpdate(this)
|
|
||||||
}, 50)
|
|
||||||
}
|
|
||||||
}/**/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
export function isUndefined(arg) {
|
export function isUndefined(arg) {
|
||||||
return typeof arg === 'undefined'
|
return typeof arg === 'undefined'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,10 @@ describe('plugin', () => {
|
|||||||
|
|
||||||
test('updates can be paused and resumed', async () => {
|
test('updates can be paused and resumed', async () => {
|
||||||
const _triggerUpdate = jest.requireActual('../src/client/triggerUpdate').default
|
const _triggerUpdate = jest.requireActual('../src/client/triggerUpdate').default
|
||||||
|
const _batchUpdate = jest.requireActual('../src/client/batchUpdate').default
|
||||||
|
|
||||||
const triggerUpdateSpy = triggerUpdate.mockImplementation(_triggerUpdate)
|
const triggerUpdateSpy = triggerUpdate.mockImplementation(_triggerUpdate)
|
||||||
|
const batchUpdateSpy = batchUpdate.mockImplementation(_batchUpdate)
|
||||||
|
|
||||||
const Component = Vue.component('test-component', {
|
const Component = Vue.component('test-component', {
|
||||||
metaInfo() {
|
metaInfo() {
|
||||||
@@ -72,7 +75,7 @@ describe('plugin', () => {
|
|||||||
expect(wrapper.vm.$root._vueMetaInitialized).toBe(false)
|
expect(wrapper.vm.$root._vueMetaInitialized).toBe(false)
|
||||||
expect(wrapper.vm.$root._vueMetaPaused).toBeFalsy()
|
expect(wrapper.vm.$root._vueMetaPaused).toBeFalsy()
|
||||||
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
||||||
expect(batchUpdate).not.toHaveBeenCalled()
|
expect(batchUpdateSpy).not.toHaveBeenCalled()
|
||||||
jest.clearAllMocks()
|
jest.clearAllMocks()
|
||||||
await vmTick(wrapper.vm)
|
await vmTick(wrapper.vm)
|
||||||
|
|
||||||
@@ -83,7 +86,7 @@ describe('plugin', () => {
|
|||||||
expect(wrapper.vm.$root._vueMetaInitialized).toBe(true)
|
expect(wrapper.vm.$root._vueMetaInitialized).toBe(true)
|
||||||
expect(wrapper.vm.$root._vueMetaPaused).toBeFalsy()
|
expect(wrapper.vm.$root._vueMetaPaused).toBeFalsy()
|
||||||
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
||||||
expect(batchUpdate).toHaveBeenCalledTimes(1)
|
expect(batchUpdateSpy).toHaveBeenCalledTimes(1)
|
||||||
jest.clearAllMocks()
|
jest.clearAllMocks()
|
||||||
|
|
||||||
wrapper.vm.$meta().pause()
|
wrapper.vm.$meta().pause()
|
||||||
@@ -94,7 +97,7 @@ describe('plugin', () => {
|
|||||||
expect(wrapper.vm.$root._vueMetaInitialized).toBe(true)
|
expect(wrapper.vm.$root._vueMetaInitialized).toBe(true)
|
||||||
expect(wrapper.vm.$root._vueMetaPaused).toBe(true)
|
expect(wrapper.vm.$root._vueMetaPaused).toBe(true)
|
||||||
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
expect(triggerUpdateSpy).toHaveBeenCalledTimes(1)
|
||||||
expect(batchUpdate).not.toHaveBeenCalled()
|
expect(batchUpdateSpy).not.toHaveBeenCalled()
|
||||||
jest.clearAllMocks()
|
jest.clearAllMocks()
|
||||||
|
|
||||||
const metaInfo = wrapper.vm.$meta().resume()
|
const metaInfo = wrapper.vm.$meta().resume()
|
||||||
|
|||||||
@@ -2,6 +2,23 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@babel/cli@^7.2.3":
|
||||||
|
version "7.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.2.3.tgz#1b262e42a3e959d28ab3d205ba2718e1923cfee6"
|
||||||
|
integrity sha512-bfna97nmJV6nDJhXNPeEfxyMjWnt6+IjUAaDPiYRTBlm8L41n8nvw6UAqUCbvpFfU246gHPxW7sfWwqtF4FcYA==
|
||||||
|
dependencies:
|
||||||
|
commander "^2.8.1"
|
||||||
|
convert-source-map "^1.1.0"
|
||||||
|
fs-readdir-recursive "^1.1.0"
|
||||||
|
glob "^7.0.0"
|
||||||
|
lodash "^4.17.10"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
output-file-sync "^2.0.0"
|
||||||
|
slash "^2.0.0"
|
||||||
|
source-map "^0.5.0"
|
||||||
|
optionalDependencies:
|
||||||
|
chokidar "^2.0.3"
|
||||||
|
|
||||||
"@babel/code-frame@^7.0.0":
|
"@babel/code-frame@^7.0.0":
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
|
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
|
||||||
@@ -930,6 +947,11 @@ astral-regex@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
|
||||||
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
|
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
|
||||||
|
|
||||||
|
async-each@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
|
||||||
|
integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
|
||||||
|
|
||||||
async-limiter@~1.0.0:
|
async-limiter@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
|
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
|
||||||
@@ -1139,6 +1161,11 @@ big.js@^5.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
||||||
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
||||||
|
|
||||||
|
binary-extensions@^1.0.0:
|
||||||
|
version "1.13.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1"
|
||||||
|
integrity sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==
|
||||||
|
|
||||||
boolbase@~1.0.0:
|
boolbase@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||||
@@ -1166,7 +1193,7 @@ braces@^1.8.2:
|
|||||||
preserve "^0.2.0"
|
preserve "^0.2.0"
|
||||||
repeat-element "^1.1.2"
|
repeat-element "^1.1.2"
|
||||||
|
|
||||||
braces@^2.3.1:
|
braces@^2.3.1, braces@^2.3.2:
|
||||||
version "2.3.2"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
|
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
|
||||||
integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
|
integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
|
||||||
@@ -1326,6 +1353,25 @@ cheerio@^1.0.0-rc.2:
|
|||||||
lodash "^4.15.0"
|
lodash "^4.15.0"
|
||||||
parse5 "^3.0.1"
|
parse5 "^3.0.1"
|
||||||
|
|
||||||
|
chokidar@^2.0.3:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058"
|
||||||
|
integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==
|
||||||
|
dependencies:
|
||||||
|
anymatch "^2.0.0"
|
||||||
|
async-each "^1.0.1"
|
||||||
|
braces "^2.3.2"
|
||||||
|
glob-parent "^3.1.0"
|
||||||
|
inherits "^2.0.3"
|
||||||
|
is-binary-path "^1.0.0"
|
||||||
|
is-glob "^4.0.0"
|
||||||
|
normalize-path "^3.0.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
readdirp "^2.2.1"
|
||||||
|
upath "^1.1.0"
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents "^1.2.7"
|
||||||
|
|
||||||
chownr@^1.1.1:
|
chownr@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
|
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
|
||||||
@@ -2390,12 +2436,17 @@ fs-minipass@^1.2.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
minipass "^2.2.1"
|
minipass "^2.2.1"
|
||||||
|
|
||||||
|
fs-readdir-recursive@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
|
||||||
|
integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
|
||||||
|
|
||||||
fs.realpath@^1.0.0:
|
fs.realpath@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||||
|
|
||||||
fsevents@^1.2.3:
|
fsevents@^1.2.3, fsevents@^1.2.7:
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4"
|
||||||
integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==
|
integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==
|
||||||
@@ -2466,7 +2517,15 @@ glob-parent@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-glob "^2.0.0"
|
is-glob "^2.0.0"
|
||||||
|
|
||||||
glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
|
glob-parent@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
|
||||||
|
integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
|
||||||
|
dependencies:
|
||||||
|
is-glob "^3.1.0"
|
||||||
|
path-dirname "^1.0.0"
|
||||||
|
|
||||||
|
glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
|
||||||
version "7.1.3"
|
version "7.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
|
||||||
integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
|
integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
|
||||||
@@ -2788,6 +2847,13 @@ is-arrayish@^0.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||||
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
||||||
|
|
||||||
|
is-binary-path@^1.0.0:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
|
||||||
|
integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
|
||||||
|
dependencies:
|
||||||
|
binary-extensions "^1.0.0"
|
||||||
|
|
||||||
is-buffer@^1.1.4, is-buffer@^1.1.5:
|
is-buffer@^1.1.4, is-buffer@^1.1.5:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||||
@@ -2876,6 +2942,11 @@ is-extglob@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
|
||||||
integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
|
integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
|
||||||
|
|
||||||
|
is-extglob@^2.1.0, is-extglob@^2.1.1:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||||
|
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
||||||
|
|
||||||
is-fullwidth-code-point@^1.0.0:
|
is-fullwidth-code-point@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
||||||
@@ -2900,6 +2971,20 @@ is-glob@^2.0.0, is-glob@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^1.0.0"
|
is-extglob "^1.0.0"
|
||||||
|
|
||||||
|
is-glob@^3.1.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
|
||||||
|
integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
|
||||||
|
dependencies:
|
||||||
|
is-extglob "^2.1.0"
|
||||||
|
|
||||||
|
is-glob@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
|
||||||
|
integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
|
||||||
|
dependencies:
|
||||||
|
is-extglob "^2.1.1"
|
||||||
|
|
||||||
is-hexadecimal@^1.0.0:
|
is-hexadecimal@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835"
|
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835"
|
||||||
@@ -4074,6 +4159,11 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
remove-trailing-separator "^1.0.1"
|
remove-trailing-separator "^1.0.1"
|
||||||
|
|
||||||
|
normalize-path@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||||
|
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||||
|
|
||||||
npm-bundled@^1.0.1:
|
npm-bundled@^1.0.1:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
|
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
|
||||||
@@ -4236,6 +4326,15 @@ osenv@^0.1.4:
|
|||||||
os-homedir "^1.0.0"
|
os-homedir "^1.0.0"
|
||||||
os-tmpdir "^1.0.0"
|
os-tmpdir "^1.0.0"
|
||||||
|
|
||||||
|
output-file-sync@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0"
|
||||||
|
integrity sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.11"
|
||||||
|
is-plain-obj "^1.1.0"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
|
||||||
p-defer@^1.0.0:
|
p-defer@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
|
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
|
||||||
@@ -4372,6 +4471,11 @@ pascalcase@^0.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
||||||
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
|
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
|
||||||
|
|
||||||
|
path-dirname@^1.0.0:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
|
||||||
|
integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
|
||||||
|
|
||||||
path-exists@^3.0.0:
|
path-exists@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||||
@@ -4611,6 +4715,15 @@ readable-stream@^3.0.6:
|
|||||||
string_decoder "^1.1.1"
|
string_decoder "^1.1.1"
|
||||||
util-deprecate "^1.0.1"
|
util-deprecate "^1.0.1"
|
||||||
|
|
||||||
|
readdirp@^2.2.1:
|
||||||
|
version "2.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
|
||||||
|
integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.11"
|
||||||
|
micromatch "^3.1.10"
|
||||||
|
readable-stream "^2.0.2"
|
||||||
|
|
||||||
realpath-native@^1.0.0, realpath-native@^1.0.2:
|
realpath-native@^1.0.0, realpath-native@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560"
|
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560"
|
||||||
@@ -5636,6 +5749,11 @@ unset-value@^1.0.0:
|
|||||||
has-value "^0.3.1"
|
has-value "^0.3.1"
|
||||||
isobject "^3.0.0"
|
isobject "^3.0.0"
|
||||||
|
|
||||||
|
upath@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
|
||||||
|
integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
|
||||||
|
|
||||||
update-section@^0.3.0, update-section@^0.3.3:
|
update-section@^0.3.0, update-section@^0.3.3:
|
||||||
version "0.3.3"
|
version "0.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158"
|
resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158"
|
||||||
|
|||||||
Reference in New Issue
Block a user