From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/vue/LICENSE | 21 + node_modules/vue/README.md | 264 + node_modules/vue/dist/README.md | 124 + node_modules/vue/dist/vue.common.js | 10960 +++++++++++++++++++ node_modules/vue/dist/vue.esm.browser.js | 10733 ++++++++++++++++++ node_modules/vue/dist/vue.esm.js | 10958 ++++++++++++++++++ node_modules/vue/dist/vue.js | 10947 ++++++++++++++++++ node_modules/vue/dist/vue.min.js | 6 + node_modules/vue/dist/vue.runtime.common.js | 8034 ++++++++++++++ node_modules/vue/dist/vue.runtime.esm.js | 8032 ++++++++++++++ node_modules/vue/dist/vue.runtime.js | 8021 ++++++++++++++ node_modules/vue/dist/vue.runtime.min.js | 6 + node_modules/vue/package.json | 149 + node_modules/vue/src/compiler/codegen/events.js | 167 + node_modules/vue/src/compiler/codegen/index.js | 513 + node_modules/vue/src/compiler/create-compiler.js | 55 + node_modules/vue/src/compiler/directives/bind.js | 11 + node_modules/vue/src/compiler/directives/index.js | 11 + node_modules/vue/src/compiler/directives/model.js | 148 + node_modules/vue/src/compiler/directives/on.js | 10 + node_modules/vue/src/compiler/error-detector.js | 108 + node_modules/vue/src/compiler/helpers.js | 164 + node_modules/vue/src/compiler/index.js | 25 + node_modules/vue/src/compiler/optimizer.js | 128 + .../vue/src/compiler/parser/entity-decoder.js | 11 + .../vue/src/compiler/parser/filter-parser.js | 97 + .../vue/src/compiler/parser/html-parser.js | 310 + node_modules/vue/src/compiler/parser/index.js | 675 ++ .../vue/src/compiler/parser/text-parser.js | 53 + node_modules/vue/src/compiler/to-function.js | 99 + node_modules/vue/src/core/components/index.js | 5 + node_modules/vue/src/core/components/keep-alive.js | 124 + node_modules/vue/src/core/config.js | 121 + node_modules/vue/src/core/global-api/assets.js | 34 + node_modules/vue/src/core/global-api/extend.js | 95 + node_modules/vue/src/core/global-api/index.js | 62 + node_modules/vue/src/core/global-api/mixin.js | 10 + node_modules/vue/src/core/global-api/use.js | 23 + node_modules/vue/src/core/index.js | 26 + node_modules/vue/src/core/instance/events.js | 142 + node_modules/vue/src/core/instance/index.js | 23 + node_modules/vue/src/core/instance/init.js | 150 + node_modules/vue/src/core/instance/inject.js | 74 + node_modules/vue/src/core/instance/lifecycle.js | 336 + node_modules/vue/src/core/instance/proxy.js | 79 + .../render-helpers/bind-object-listeners.js | 22 + .../instance/render-helpers/bind-object-props.js | 60 + .../core/instance/render-helpers/check-keycodes.js | 34 + .../vue/src/core/instance/render-helpers/index.js | 30 + .../core/instance/render-helpers/render-list.js | 39 + .../core/instance/render-helpers/render-slot.js | 50 + .../core/instance/render-helpers/render-static.js | 60 + .../core/instance/render-helpers/resolve-filter.js | 10 + .../core/instance/render-helpers/resolve-slots.js | 65 + node_modules/vue/src/core/instance/render.js | 119 + node_modules/vue/src/core/instance/state.js | 360 + node_modules/vue/src/core/observer/array.js | 45 + node_modules/vue/src/core/observer/dep.js | 58 + node_modules/vue/src/core/observer/index.js | 273 + node_modules/vue/src/core/observer/scheduler.js | 148 + node_modules/vue/src/core/observer/traverse.js | 40 + node_modules/vue/src/core/observer/watcher.js | 240 + node_modules/vue/src/core/util/debug.js | 100 + node_modules/vue/src/core/util/env.js | 95 + node_modules/vue/src/core/util/error.js | 48 + node_modules/vue/src/core/util/index.js | 11 + node_modules/vue/src/core/util/lang.js | 39 + node_modules/vue/src/core/util/next-tick.js | 117 + node_modules/vue/src/core/util/options.js | 438 + node_modules/vue/src/core/util/perf.js | 24 + node_modules/vue/src/core/util/props.js | 202 + node_modules/vue/src/core/vdom/create-component.js | 257 + node_modules/vue/src/core/vdom/create-element.js | 160 + .../src/core/vdom/create-functional-component.js | 136 + .../vue/src/core/vdom/helpers/extract-props.js | 75 + .../core/vdom/helpers/get-first-component-child.js | 15 + node_modules/vue/src/core/vdom/helpers/index.js | 9 + .../src/core/vdom/helpers/is-async-placeholder.js | 5 + .../vue/src/core/vdom/helpers/merge-hook.js | 38 + .../src/core/vdom/helpers/normalize-children.js | 89 + .../core/vdom/helpers/resolve-async-component.js | 140 + .../vue/src/core/vdom/helpers/update-listeners.js | 83 + .../vue/src/core/vdom/modules/directives.js | 119 + node_modules/vue/src/core/vdom/modules/index.js | 7 + node_modules/vue/src/core/vdom/modules/ref.js | 45 + node_modules/vue/src/core/vdom/patch.js | 787 ++ node_modules/vue/src/core/vdom/vnode.js | 108 + .../src/platforms/web/compiler/directives/html.js | 9 + .../src/platforms/web/compiler/directives/index.js | 9 + .../src/platforms/web/compiler/directives/model.js | 172 + .../src/platforms/web/compiler/directives/text.js | 9 + .../vue/src/platforms/web/compiler/index.js | 8 + .../src/platforms/web/compiler/modules/class.js | 48 + .../src/platforms/web/compiler/modules/index.js | 9 + .../src/platforms/web/compiler/modules/model.js | 94 + .../src/platforms/web/compiler/modules/style.js | 51 + .../vue/src/platforms/web/compiler/options.js | 26 + .../vue/src/platforms/web/compiler/util.js | 24 + .../vue/src/platforms/web/entry-compiler.js | 5 + .../platforms/web/entry-runtime-with-compiler.js | 100 + .../vue/src/platforms/web/entry-runtime.js | 5 + .../platforms/web/entry-server-basic-renderer.js | 13 + .../vue/src/platforms/web/entry-server-renderer.js | 27 + .../vue/src/platforms/web/runtime/class-util.js | 61 + .../src/platforms/web/runtime/components/index.js | 7 + .../web/runtime/components/transition-group.js | 180 + .../platforms/web/runtime/components/transition.js | 194 + .../src/platforms/web/runtime/directives/index.js | 7 + .../src/platforms/web/runtime/directives/model.js | 147 + .../src/platforms/web/runtime/directives/show.js | 60 + .../vue/src/platforms/web/runtime/index.js | 77 + .../vue/src/platforms/web/runtime/modules/attrs.js | 118 + .../vue/src/platforms/web/runtime/modules/class.js | 48 + .../src/platforms/web/runtime/modules/dom-props.js | 95 + .../src/platforms/web/runtime/modules/events.js | 87 + .../vue/src/platforms/web/runtime/modules/index.js | 15 + .../vue/src/platforms/web/runtime/modules/style.js | 93 + .../platforms/web/runtime/modules/transition.js | 343 + .../vue/src/platforms/web/runtime/node-ops.js | 59 + .../vue/src/platforms/web/runtime/patch.js | 12 + .../src/platforms/web/runtime/transition-util.js | 185 + .../vue/src/platforms/web/server/compiler.js | 11 + .../src/platforms/web/server/directives/index.js | 7 + .../src/platforms/web/server/directives/model.js | 44 + .../src/platforms/web/server/directives/show.js | 12 + .../vue/src/platforms/web/server/modules/attrs.js | 62 + .../vue/src/platforms/web/server/modules/class.js | 11 + .../src/platforms/web/server/modules/dom-props.js | 50 + .../vue/src/platforms/web/server/modules/index.js | 11 + .../vue/src/platforms/web/server/modules/style.js | 28 + node_modules/vue/src/platforms/web/server/util.js | 56 + node_modules/vue/src/platforms/web/util/attrs.js | 43 + node_modules/vue/src/platforms/web/util/class.js | 85 + node_modules/vue/src/platforms/web/util/compat.js | 16 + node_modules/vue/src/platforms/web/util/element.js | 77 + node_modules/vue/src/platforms/web/util/index.js | 25 + node_modules/vue/src/platforms/web/util/style.js | 72 + .../platforms/weex/compiler/directives/index.js | 5 + .../platforms/weex/compiler/directives/model.js | 34 + .../vue/src/platforms/weex/compiler/index.js | 52 + .../src/platforms/weex/compiler/modules/append.js | 27 + .../src/platforms/weex/compiler/modules/class.js | 73 + .../src/platforms/weex/compiler/modules/index.js | 13 + .../src/platforms/weex/compiler/modules/props.js | 32 + .../modules/recycle-list/component-root.js | 16 + .../compiler/modules/recycle-list/component.js | 16 + .../weex/compiler/modules/recycle-list/index.js | 60 + .../compiler/modules/recycle-list/recycle-list.js | 50 + .../weex/compiler/modules/recycle-list/text.js | 23 + .../weex/compiler/modules/recycle-list/v-bind.js | 21 + .../weex/compiler/modules/recycle-list/v-for.js | 33 + .../weex/compiler/modules/recycle-list/v-if.js | 63 + .../weex/compiler/modules/recycle-list/v-on.js | 25 + .../weex/compiler/modules/recycle-list/v-once.js | 19 + .../src/platforms/weex/compiler/modules/style.js | 86 + .../vue/src/platforms/weex/entry-compiler.js | 1 + .../vue/src/platforms/weex/entry-framework.js | 187 + .../src/platforms/weex/entry-runtime-factory.js | 6 + .../src/platforms/weex/runtime/components/index.js | 9 + .../platforms/weex/runtime/components/richtext.js | 82 + .../weex/runtime/components/transition-group.js | 148 + .../weex/runtime/components/transition.js | 9 + .../src/platforms/weex/runtime/directives/index.js | 2 + .../vue/src/platforms/weex/runtime/index.js | 42 + .../src/platforms/weex/runtime/modules/attrs.js | 44 + .../src/platforms/weex/runtime/modules/class.js | 75 + .../src/platforms/weex/runtime/modules/events.js | 57 + .../src/platforms/weex/runtime/modules/index.js | 13 + .../src/platforms/weex/runtime/modules/style.js | 84 + .../platforms/weex/runtime/modules/transition.js | 270 + .../vue/src/platforms/weex/runtime/node-ops.js | 91 + .../vue/src/platforms/weex/runtime/patch.js | 16 + .../recycle-list/render-component-template.js | 34 + .../weex/runtime/recycle-list/virtual-component.js | 136 + .../vue/src/platforms/weex/runtime/text-node.js | 9 + .../vue/src/platforms/weex/util/element.js | 52 + node_modules/vue/src/platforms/weex/util/index.js | 40 + node_modules/vue/src/platforms/weex/util/parser.js | 60 + .../bundle-renderer/create-bundle-renderer.js | 151 + .../server/bundle-renderer/create-bundle-runner.js | 150 + .../server/bundle-renderer/source-map-support.js | 45 + .../vue/src/server/create-basic-renderer.js | 37 + node_modules/vue/src/server/create-renderer.js | 120 + .../vue/src/server/optimizing-compiler/codegen.js | 260 + .../vue/src/server/optimizing-compiler/index.js | 20 + .../vue/src/server/optimizing-compiler/modules.js | 126 + .../src/server/optimizing-compiler/optimizer.js | 140 + .../server/optimizing-compiler/runtime-helpers.js | 150 + node_modules/vue/src/server/render-context.js | 130 + node_modules/vue/src/server/render-stream.js | 94 + node_modules/vue/src/server/render.js | 396 + .../template-renderer/create-async-file-mapper.js | 53 + .../vue/src/server/template-renderer/index.js | 257 + .../src/server/template-renderer/parse-template.js | 42 + .../server/template-renderer/template-stream.js | 82 + node_modules/vue/src/server/util.js | 18 + .../vue/src/server/webpack-plugin/client.js | 70 + .../vue/src/server/webpack-plugin/server.js | 66 + node_modules/vue/src/server/webpack-plugin/util.js | 24 + node_modules/vue/src/server/write.js | 50 + node_modules/vue/src/sfc/parser.js | 116 + node_modules/vue/src/shared/constants.js | 21 + node_modules/vue/src/shared/util.js | 324 + node_modules/vue/types/index.d.ts | 37 + node_modules/vue/types/options.d.ts | 182 + node_modules/vue/types/plugin.d.ts | 8 + node_modules/vue/types/vnode.d.ts | 67 + node_modules/vue/types/vue.d.ts | 124 + 208 files changed, 85426 insertions(+) create mode 100644 node_modules/vue/LICENSE create mode 100644 node_modules/vue/README.md create mode 100644 node_modules/vue/dist/README.md create mode 100644 node_modules/vue/dist/vue.common.js create mode 100644 node_modules/vue/dist/vue.esm.browser.js create mode 100644 node_modules/vue/dist/vue.esm.js create mode 100644 node_modules/vue/dist/vue.js create mode 100644 node_modules/vue/dist/vue.min.js create mode 100644 node_modules/vue/dist/vue.runtime.common.js create mode 100644 node_modules/vue/dist/vue.runtime.esm.js create mode 100644 node_modules/vue/dist/vue.runtime.js create mode 100644 node_modules/vue/dist/vue.runtime.min.js create mode 100644 node_modules/vue/package.json create mode 100644 node_modules/vue/src/compiler/codegen/events.js create mode 100644 node_modules/vue/src/compiler/codegen/index.js create mode 100644 node_modules/vue/src/compiler/create-compiler.js create mode 100644 node_modules/vue/src/compiler/directives/bind.js create mode 100644 node_modules/vue/src/compiler/directives/index.js create mode 100644 node_modules/vue/src/compiler/directives/model.js create mode 100644 node_modules/vue/src/compiler/directives/on.js create mode 100644 node_modules/vue/src/compiler/error-detector.js create mode 100644 node_modules/vue/src/compiler/helpers.js create mode 100644 node_modules/vue/src/compiler/index.js create mode 100644 node_modules/vue/src/compiler/optimizer.js create mode 100644 node_modules/vue/src/compiler/parser/entity-decoder.js create mode 100644 node_modules/vue/src/compiler/parser/filter-parser.js create mode 100644 node_modules/vue/src/compiler/parser/html-parser.js create mode 100644 node_modules/vue/src/compiler/parser/index.js create mode 100644 node_modules/vue/src/compiler/parser/text-parser.js create mode 100644 node_modules/vue/src/compiler/to-function.js create mode 100644 node_modules/vue/src/core/components/index.js create mode 100644 node_modules/vue/src/core/components/keep-alive.js create mode 100644 node_modules/vue/src/core/config.js create mode 100644 node_modules/vue/src/core/global-api/assets.js create mode 100644 node_modules/vue/src/core/global-api/extend.js create mode 100644 node_modules/vue/src/core/global-api/index.js create mode 100644 node_modules/vue/src/core/global-api/mixin.js create mode 100644 node_modules/vue/src/core/global-api/use.js create mode 100644 node_modules/vue/src/core/index.js create mode 100644 node_modules/vue/src/core/instance/events.js create mode 100644 node_modules/vue/src/core/instance/index.js create mode 100644 node_modules/vue/src/core/instance/init.js create mode 100644 node_modules/vue/src/core/instance/inject.js create mode 100644 node_modules/vue/src/core/instance/lifecycle.js create mode 100644 node_modules/vue/src/core/instance/proxy.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/bind-object-listeners.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/bind-object-props.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/check-keycodes.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/index.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-list.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-slot.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-static.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/resolve-filter.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/resolve-slots.js create mode 100644 node_modules/vue/src/core/instance/render.js create mode 100644 node_modules/vue/src/core/instance/state.js create mode 100644 node_modules/vue/src/core/observer/array.js create mode 100644 node_modules/vue/src/core/observer/dep.js create mode 100644 node_modules/vue/src/core/observer/index.js create mode 100644 node_modules/vue/src/core/observer/scheduler.js create mode 100644 node_modules/vue/src/core/observer/traverse.js create mode 100644 node_modules/vue/src/core/observer/watcher.js create mode 100644 node_modules/vue/src/core/util/debug.js create mode 100644 node_modules/vue/src/core/util/env.js create mode 100644 node_modules/vue/src/core/util/error.js create mode 100644 node_modules/vue/src/core/util/index.js create mode 100644 node_modules/vue/src/core/util/lang.js create mode 100644 node_modules/vue/src/core/util/next-tick.js create mode 100644 node_modules/vue/src/core/util/options.js create mode 100644 node_modules/vue/src/core/util/perf.js create mode 100644 node_modules/vue/src/core/util/props.js create mode 100644 node_modules/vue/src/core/vdom/create-component.js create mode 100644 node_modules/vue/src/core/vdom/create-element.js create mode 100644 node_modules/vue/src/core/vdom/create-functional-component.js create mode 100644 node_modules/vue/src/core/vdom/helpers/extract-props.js create mode 100644 node_modules/vue/src/core/vdom/helpers/get-first-component-child.js create mode 100644 node_modules/vue/src/core/vdom/helpers/index.js create mode 100644 node_modules/vue/src/core/vdom/helpers/is-async-placeholder.js create mode 100644 node_modules/vue/src/core/vdom/helpers/merge-hook.js create mode 100644 node_modules/vue/src/core/vdom/helpers/normalize-children.js create mode 100644 node_modules/vue/src/core/vdom/helpers/resolve-async-component.js create mode 100644 node_modules/vue/src/core/vdom/helpers/update-listeners.js create mode 100644 node_modules/vue/src/core/vdom/modules/directives.js create mode 100644 node_modules/vue/src/core/vdom/modules/index.js create mode 100644 node_modules/vue/src/core/vdom/modules/ref.js create mode 100644 node_modules/vue/src/core/vdom/patch.js create mode 100644 node_modules/vue/src/core/vdom/vnode.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/html.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/text.js create mode 100644 node_modules/vue/src/platforms/web/compiler/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/model.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/compiler/options.js create mode 100644 node_modules/vue/src/platforms/web/compiler/util.js create mode 100644 node_modules/vue/src/platforms/web/entry-compiler.js create mode 100644 node_modules/vue/src/platforms/web/entry-runtime-with-compiler.js create mode 100644 node_modules/vue/src/platforms/web/entry-runtime.js create mode 100644 node_modules/vue/src/platforms/web/entry-server-basic-renderer.js create mode 100644 node_modules/vue/src/platforms/web/entry-server-renderer.js create mode 100644 node_modules/vue/src/platforms/web/runtime/class-util.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/transition-group.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/transition.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/show.js create mode 100644 node_modules/vue/src/platforms/web/runtime/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/attrs.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/dom-props.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/events.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/transition.js create mode 100644 node_modules/vue/src/platforms/web/runtime/node-ops.js create mode 100644 node_modules/vue/src/platforms/web/runtime/patch.js create mode 100644 node_modules/vue/src/platforms/web/runtime/transition-util.js create mode 100644 node_modules/vue/src/platforms/web/server/compiler.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/show.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/attrs.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/dom-props.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/server/util.js create mode 100644 node_modules/vue/src/platforms/web/util/attrs.js create mode 100644 node_modules/vue/src/platforms/web/util/class.js create mode 100644 node_modules/vue/src/platforms/web/util/compat.js create mode 100644 node_modules/vue/src/platforms/web/util/element.js create mode 100644 node_modules/vue/src/platforms/web/util/index.js create mode 100644 node_modules/vue/src/platforms/web/util/style.js create mode 100755 node_modules/vue/src/platforms/weex/compiler/directives/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/directives/model.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/append.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/class.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/props.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/component-root.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/component.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/recycle-list.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/text.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/v-bind.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/v-for.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/v-if.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/v-on.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/recycle-list/v-once.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/style.js create mode 100644 node_modules/vue/src/platforms/weex/entry-compiler.js create mode 100644 node_modules/vue/src/platforms/weex/entry-framework.js create mode 100644 node_modules/vue/src/platforms/weex/entry-runtime-factory.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/index.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/richtext.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/transition-group.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/transition.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/directives/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/attrs.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/class.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/events.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/style.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/modules/transition.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/node-ops.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/patch.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/recycle-list/render-component-template.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/recycle-list/virtual-component.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/text-node.js create mode 100644 node_modules/vue/src/platforms/weex/util/element.js create mode 100755 node_modules/vue/src/platforms/weex/util/index.js create mode 100644 node_modules/vue/src/platforms/weex/util/parser.js create mode 100644 node_modules/vue/src/server/bundle-renderer/create-bundle-renderer.js create mode 100644 node_modules/vue/src/server/bundle-renderer/create-bundle-runner.js create mode 100644 node_modules/vue/src/server/bundle-renderer/source-map-support.js create mode 100644 node_modules/vue/src/server/create-basic-renderer.js create mode 100644 node_modules/vue/src/server/create-renderer.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/codegen.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/index.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/modules.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/optimizer.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/runtime-helpers.js create mode 100644 node_modules/vue/src/server/render-context.js create mode 100644 node_modules/vue/src/server/render-stream.js create mode 100644 node_modules/vue/src/server/render.js create mode 100644 node_modules/vue/src/server/template-renderer/create-async-file-mapper.js create mode 100644 node_modules/vue/src/server/template-renderer/index.js create mode 100644 node_modules/vue/src/server/template-renderer/parse-template.js create mode 100644 node_modules/vue/src/server/template-renderer/template-stream.js create mode 100644 node_modules/vue/src/server/util.js create mode 100644 node_modules/vue/src/server/webpack-plugin/client.js create mode 100644 node_modules/vue/src/server/webpack-plugin/server.js create mode 100644 node_modules/vue/src/server/webpack-plugin/util.js create mode 100644 node_modules/vue/src/server/write.js create mode 100644 node_modules/vue/src/sfc/parser.js create mode 100644 node_modules/vue/src/shared/constants.js create mode 100644 node_modules/vue/src/shared/util.js create mode 100644 node_modules/vue/types/index.d.ts create mode 100644 node_modules/vue/types/options.d.ts create mode 100644 node_modules/vue/types/plugin.d.ts create mode 100644 node_modules/vue/types/vnode.d.ts create mode 100644 node_modules/vue/types/vue.d.ts (limited to 'node_modules/vue') diff --git a/node_modules/vue/LICENSE b/node_modules/vue/LICENSE new file mode 100644 index 00000000..b65dd9e6 --- /dev/null +++ b/node_modules/vue/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-present, Yuxi (Evan) You + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/vue/README.md b/node_modules/vue/README.md new file mode 100644 index 00000000..c89a48c6 --- /dev/null +++ b/node_modules/vue/README.md @@ -0,0 +1,264 @@ +

Vue logo

+ +

+ Build Status + Coverage Status + Downloads + Version + License + Chat +
+ Sauce Test Status +

+ +

Supporting Vue.js

+ +Vue.js is an MIT-licensed open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome [backers](https://github.com/vuejs/vue/blob/dev/BACKERS.md). If you'd like to join them, please consider: + +- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou). +- [Become a backer or sponsor on Open Collective](https://opencollective.com/vuejs). +- [One-time donation via PayPal or crypto-currencies.](https://vuejs.org/support-vuejs/#One-time-Donations) + +#### What's the difference between Patreon and OpenCollective? + +Funds donated via Patreon go directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses for core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform. + +

Special Sponsors

+ + + + + + + + + +
+ + + + + + + + + + + +
+ + +

Sponsors via Patreon

+ +

Platinum

+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + +

Gold

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + +

Sponsors via Open Collective

+ +

Platinum

+ + + + +

Gold

+ + + + + + + +--- + +## Introduction + +Vue (pronounced `/vjuː/`, like view) is a **progressive framework** for building user interfaces. It is designed from the ground up to be incrementally adoptable, and can easily scale between a library and a framework depending on different use cases. It consists of an approachable core library that focuses on the view layer only, and an ecosystem of supporting libraries that helps you tackle complexity in large Single-Page Applications. + +#### Browser Compatibility + +Vue.js supports all browsers that are [ES5-compliant](http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported). + +## Ecosystem + +| Project | Status | Description | +|---------|--------|-------------| +| [vue-router] | [![vue-router-status]][vue-router-package] | Single-page application routing | +| [vuex] | [![vuex-status]][vuex-package] | Large-scale state management | +| [vue-cli] | [![vue-cli-status]][vue-cli-package] | Project scaffolding | +| [vue-loader] | [![vue-loader-status]][vue-loader-package] | Single File Component (`*.vue` file) loader for webpack | +| [vue-server-renderer] | [![vue-server-renderer-status]][vue-server-renderer-package] | Server-side rendering support | +| [vue-class-component] | [![vue-class-component-status]][vue-class-component-package] | TypeScript decorator for a class-based API | +| [vue-rx] | [![vue-rx-status]][vue-rx-package] | RxJS integration | +| [vue-devtools] | [![vue-devtools-status]][vue-devtools-package] | Browser DevTools extension | + +[vue-router]: https://github.com/vuejs/vue-router +[vuex]: https://github.com/vuejs/vuex +[vue-cli]: https://github.com/vuejs/vue-cli +[vue-loader]: https://github.com/vuejs/vue-loader +[vue-server-renderer]: https://github.com/vuejs/vue/tree/dev/packages/vue-server-renderer +[vue-class-component]: https://github.com/vuejs/vue-class-component +[vue-rx]: https://github.com/vuejs/vue-rx +[vue-devtools]: https://github.com/vuejs/vue-devtools + +[vue-router-status]: https://img.shields.io/npm/v/vue-router.svg +[vuex-status]: https://img.shields.io/npm/v/vuex.svg +[vue-cli-status]: https://img.shields.io/npm/v/vue-cli.svg +[vue-loader-status]: https://img.shields.io/npm/v/vue-loader.svg +[vue-server-renderer-status]: https://img.shields.io/npm/v/vue-server-renderer.svg +[vue-class-component-status]: https://img.shields.io/npm/v/vue-class-component.svg +[vue-rx-status]: https://img.shields.io/npm/v/vue-rx.svg +[vue-devtools-status]: https://img.shields.io/chrome-web-store/v/nhdogjmejiglipccpnnnanhbledajbpd.svg + +[vue-router-package]: https://npmjs.com/package/vue-router +[vuex-package]: https://npmjs.com/package/vuex +[vue-cli-package]: https://npmjs.com/package/vue-cli +[vue-loader-package]: https://npmjs.com/package/vue-loader +[vue-server-renderer-package]: https://npmjs.com/package/vue-server-renderer +[vue-class-component-package]: https://npmjs.com/package/vue-class-component +[vue-rx-package]: https://npmjs.com/package/vue-rx +[vue-devtools-package]: https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd + +## Documentation + +To check out [live examples](https://vuejs.org/v2/examples/) and docs, visit [vuejs.org](https://vuejs.org). + +## Questions + +For questions and support please use the [the official forum](http://forum.vuejs.org) or [community chat](https://chat.vuejs.org/). The issue list of this repo is **exclusively** for bug reports and feature requests. + +## Issues + +Please make sure to read the [Issue Reporting Checklist](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines may be closed immediately. + +## Changelog + +Detailed changes for each release are documented in the [release notes](https://github.com/vuejs/vue/releases). + +## Stay In Touch + +- [Twitter](https://twitter.com/vuejs) +- [Blog](https://medium.com/the-vue-point) +- [Job Board](https://vuejobs.com/?ref=vuejs) + +## Contribution + +Please make sure to read the [Contributing Guide](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md) before making a pull request. If you have a Vue-related project/component/tool, add it with a pull request to [this curated list](https://github.com/vuejs/awesome-vue)! + +Thank you to all the people who already contributed to Vue! + + + + +## License + +[MIT](http://opensource.org/licenses/MIT) + +Copyright (c) 2013-present, Yuxi (Evan) You diff --git a/node_modules/vue/dist/README.md b/node_modules/vue/dist/README.md new file mode 100644 index 00000000..6b206839 --- /dev/null +++ b/node_modules/vue/dist/README.md @@ -0,0 +1,124 @@ +## Explanation of Build Files + +| | UMD | CommonJS | ES Module | +| --- | --- | --- | --- | +| **Full** | vue.js | vue.common.js | vue.esm.js | +| **Runtime-only** | vue.runtime.js | vue.runtime.common.js | vue.runtime.esm.js | +| **Full (production)** | vue.min.js | | | +| **Runtime-only (production)** | vue.runtime.min.js | | | + +### Terms + +- **Full**: builds that contains both the compiler and the runtime. + +- **Compiler**: code that is responsible for compiling template strings into JavaScript render functions. + +- **Runtime**: code that is responsible for creating Vue instances, rendering and patching virtual DOM, etc. Basically everything minus the compiler. + +- **[UMD](https://github.com/umdjs/umd)**: UMD builds can be used directly in the browser via a `` + : '' + } + + renderScripts (context: Object): string { + if (this.clientManifest) { + const initial = this.preloadFiles + const async = this.getUsedAsyncFiles(context) + const needed = [initial[0]].concat(async || [], initial.slice(1)) + return needed.filter(({ file }) => isJS(file)).map(({ file }) => { + return `` + }).join('') + } else { + return '' + } + } + + getUsedAsyncFiles (context: Object): ?Array { + if (!context._mappedFiles && context._registeredComponents && this.mapFiles) { + const registered = Array.from(context._registeredComponents) + context._mappedFiles = this.mapFiles(registered).map(normalizeFile) + } + return context._mappedFiles + } + + // create a transform stream + createStream (context: ?Object): TemplateStream { + if (!this.parsedTemplate) { + throw new Error('createStream cannot be called without a template.') + } + return new TemplateStream(this, this.parsedTemplate, context || {}) + } +} + +function normalizeFile (file: string): Resource { + const withoutQuery = file.replace(/\?.*/, '') + const extension = path.extname(withoutQuery).slice(1) + return { + file, + extension, + fileWithoutQuery: withoutQuery, + asType: getPreloadType(extension) + } +} + +function getPreloadType (ext: string): string { + if (ext === 'js') { + return 'script' + } else if (ext === 'css') { + return 'style' + } else if (/jpe?g|png|svg|gif|webp|ico/.test(ext)) { + return 'image' + } else if (/woff2?|ttf|otf|eot/.test(ext)) { + return 'font' + } else { + // not exhausting all possibilities here, but above covers common cases + return '' + } +} diff --git a/node_modules/vue/src/server/template-renderer/parse-template.js b/node_modules/vue/src/server/template-renderer/parse-template.js new file mode 100644 index 00000000..1ccfe899 --- /dev/null +++ b/node_modules/vue/src/server/template-renderer/parse-template.js @@ -0,0 +1,42 @@ +/* @flow */ + +const compile = require('lodash.template') +const compileOptions = { + escape: /{{([^{][\s\S]+?[^}])}}/g, + interpolate: /{{{([\s\S]+?)}}}/g +} + +export type ParsedTemplate = { + head: (data: any) => string; + neck: (data: any) => string; + tail: (data: any) => string; +}; + +export function parseTemplate ( + template: string, + contentPlaceholder?: string = '' +): ParsedTemplate { + if (typeof template === 'object') { + return template + } + + let i = template.indexOf('') + const j = template.indexOf(contentPlaceholder) + + if (j < 0) { + throw new Error(`Content placeholder not found in template.`) + } + + if (i < 0) { + i = template.indexOf('') + if (i < 0) { + i = j + } + } + + return { + head: compile(template.slice(0, i), compileOptions), + neck: compile(template.slice(i, j), compileOptions), + tail: compile(template.slice(j + contentPlaceholder.length), compileOptions) + } +} diff --git a/node_modules/vue/src/server/template-renderer/template-stream.js b/node_modules/vue/src/server/template-renderer/template-stream.js new file mode 100644 index 00000000..ed4db78f --- /dev/null +++ b/node_modules/vue/src/server/template-renderer/template-stream.js @@ -0,0 +1,82 @@ +/* @flow */ + +const Transform = require('stream').Transform +import type TemplateRenderer from './index' +import type { ParsedTemplate } from './parse-template' + +export default class TemplateStream extends Transform { + started: boolean; + renderer: TemplateRenderer; + template: ParsedTemplate; + context: Object; + inject: boolean; + + constructor ( + renderer: TemplateRenderer, + template: ParsedTemplate, + context: Object + ) { + super() + this.started = false + this.renderer = renderer + this.template = template + this.context = context || {} + this.inject = renderer.inject + } + + _transform (data: Buffer | string, encoding: string, done: Function) { + if (!this.started) { + this.emit('beforeStart') + this.start() + } + this.push(data) + done() + } + + start () { + this.started = true + this.push(this.template.head(this.context)) + + if (this.inject) { + // inline server-rendered head meta information + if (this.context.head) { + this.push(this.context.head) + } + + // inline preload/prefetch directives for initial/async chunks + const links = this.renderer.renderResourceHints(this.context) + if (links) { + this.push(links) + } + + // CSS files and inline server-rendered CSS collected by vue-style-loader + const styles = this.renderer.renderStyles(this.context) + if (styles) { + this.push(styles) + } + } + + this.push(this.template.neck(this.context)) + } + + _flush (done: Function) { + this.emit('beforeEnd') + + if (this.inject) { + // inline initial store state + const state = this.renderer.renderState(this.context) + if (state) { + this.push(state) + } + + // embed scripts needed + const scripts = this.renderer.renderScripts(this.context) + if (scripts) { + this.push(scripts) + } + } + + this.push(this.template.tail(this.context)) + done() + } +} diff --git a/node_modules/vue/src/server/util.js b/node_modules/vue/src/server/util.js new file mode 100644 index 00000000..908f8c9d --- /dev/null +++ b/node_modules/vue/src/server/util.js @@ -0,0 +1,18 @@ +/* @flow */ + +export const isJS = (file: string): boolean => /\.js(\?[^.]+)?$/.test(file) + +export const isCSS = (file: string): boolean => /\.css(\?[^.]+)?$/.test(file) + +export function createPromiseCallback () { + let resolve, reject + const promise: Promise = new Promise((_resolve, _reject) => { + resolve = _resolve + reject = _reject + }) + const cb = (err: Error, res?: string) => { + if (err) return reject(err) + resolve(res || '') + } + return { promise, cb } +} diff --git a/node_modules/vue/src/server/webpack-plugin/client.js b/node_modules/vue/src/server/webpack-plugin/client.js new file mode 100644 index 00000000..5f2cd4bd --- /dev/null +++ b/node_modules/vue/src/server/webpack-plugin/client.js @@ -0,0 +1,70 @@ +const hash = require('hash-sum') +const uniq = require('lodash.uniq') +import { isJS } from './util' + +export default class VueSSRClientPlugin { + constructor (options = {}) { + this.options = Object.assign({ + filename: 'vue-ssr-client-manifest.json' + }, options) + } + + apply (compiler) { + compiler.plugin('emit', (compilation, cb) => { + const stats = compilation.getStats().toJson() + + const allFiles = uniq(stats.assets + .map(a => a.name)) + + const initialFiles = uniq(Object.keys(stats.entrypoints) + .map(name => stats.entrypoints[name].assets) + .reduce((assets, all) => all.concat(assets), []) + .filter(isJS)) + + const asyncFiles = allFiles + .filter(isJS) + .filter(file => initialFiles.indexOf(file) < 0) + + const manifest = { + publicPath: stats.publicPath, + all: allFiles, + initial: initialFiles, + async: asyncFiles, + modules: { /* [identifier: string]: Array */ } + } + + const assetModules = stats.modules.filter(m => m.assets.length) + const fileToIndex = file => manifest.all.indexOf(file) + stats.modules.forEach(m => { + // ignore modules duplicated in multiple chunks + if (m.chunks.length === 1) { + const cid = m.chunks[0] + const chunk = stats.chunks.find(c => c.id === cid) + if (!chunk || !chunk.files) { + return + } + const files = manifest.modules[hash(m.identifier)] = chunk.files.map(fileToIndex) + // find all asset modules associated with the same chunk + assetModules.forEach(m => { + if (m.chunks.some(id => id === cid)) { + files.push.apply(files, m.assets.map(fileToIndex)) + } + }) + } + }) + + // const debug = (file, obj) => { + // require('fs').writeFileSync(__dirname + '/' + file, JSON.stringify(obj, null, 2)) + // } + // debug('stats.json', stats) + // debug('client-manifest.json', manifest) + + const json = JSON.stringify(manifest, null, 2) + compilation.assets[this.options.filename] = { + source: () => json, + size: () => json.length + } + cb() + }) + } +} diff --git a/node_modules/vue/src/server/webpack-plugin/server.js b/node_modules/vue/src/server/webpack-plugin/server.js new file mode 100644 index 00000000..8ffa58b0 --- /dev/null +++ b/node_modules/vue/src/server/webpack-plugin/server.js @@ -0,0 +1,66 @@ +import { validate, isJS } from './util' + +export default class VueSSRServerPlugin { + constructor (options = {}) { + this.options = Object.assign({ + filename: 'vue-ssr-server-bundle.json' + }, options) + } + + apply (compiler) { + validate(compiler) + + compiler.plugin('emit', (compilation, cb) => { + const stats = compilation.getStats().toJson() + const entryName = Object.keys(stats.entrypoints)[0] + const entryInfo = stats.entrypoints[entryName] + + if (!entryInfo) { + // #5553 + return cb() + } + + const entryAssets = entryInfo.assets.filter(isJS) + + if (entryAssets.length > 1) { + throw new Error( + `Server-side bundle should have one single entry file. ` + + `Avoid using CommonsChunkPlugin in the server config.` + ) + } + + const entry = entryAssets[0] + if (!entry || typeof entry !== 'string') { + throw new Error( + `Entry "${entryName}" not found. Did you specify the correct entry option?` + ) + } + + const bundle = { + entry, + files: {}, + maps: {} + } + + stats.assets.forEach(asset => { + if (asset.name.match(/\.js$/)) { + bundle.files[asset.name] = compilation.assets[asset.name].source() + } else if (asset.name.match(/\.js\.map$/)) { + bundle.maps[asset.name.replace(/\.map$/, '')] = JSON.parse(compilation.assets[asset.name].source()) + } + // do not emit anything else for server + delete compilation.assets[asset.name] + }) + + const json = JSON.stringify(bundle, null, 2) + const filename = this.options.filename + + compilation.assets[filename] = { + source: () => json, + size: () => json.length + } + + cb() + }) + } +} diff --git a/node_modules/vue/src/server/webpack-plugin/util.js b/node_modules/vue/src/server/webpack-plugin/util.js new file mode 100644 index 00000000..d22e4b2c --- /dev/null +++ b/node_modules/vue/src/server/webpack-plugin/util.js @@ -0,0 +1,24 @@ +const { red, yellow } = require('chalk') + +const prefix = `[vue-server-renderer-webpack-plugin]` +const warn = exports.warn = msg => console.error(red(`${prefix} ${msg}\n`)) +const tip = exports.tip = msg => console.log(yellow(`${prefix} ${msg}\n`)) + +export const validate = compiler => { + if (compiler.options.target !== 'node') { + warn('webpack config `target` should be "node".') + } + + if (compiler.options.output && compiler.options.output.libraryTarget !== 'commonjs2') { + warn('webpack config `output.libraryTarget` should be "commonjs2".') + } + + if (!compiler.options.externals) { + tip( + 'It is recommended to externalize dependencies in the server build for ' + + 'better build performance.' + ) + } +} + +export { isJS, isCSS } from '../util' diff --git a/node_modules/vue/src/server/write.js b/node_modules/vue/src/server/write.js new file mode 100644 index 00000000..e6420818 --- /dev/null +++ b/node_modules/vue/src/server/write.js @@ -0,0 +1,50 @@ +/* @flow */ + +const MAX_STACK_DEPTH = 1000 +const noop = _ => _ + +const defer = typeof process !== 'undefined' && process.nextTick + ? process.nextTick + : typeof Promise !== 'undefined' + ? fn => Promise.resolve().then(fn) + : typeof setTimeout !== 'undefined' + ? setTimeout + : noop + +if (defer === noop) { + throw new Error( + 'Your JavaScript runtime does not support any asynchronous primitives ' + + 'that are required by vue-server-renderer. Please use a polyfill for ' + + 'either Promise or setTimeout.' + ) +} + +export function createWriteFunction ( + write: (text: string, next: Function) => boolean, + onError: Function +): Function { + let stackDepth = 0 + const cachedWrite = (text, next) => { + if (text && cachedWrite.caching) { + cachedWrite.cacheBuffer[cachedWrite.cacheBuffer.length - 1] += text + } + const waitForNext = write(text, next) + if (waitForNext !== true) { + if (stackDepth >= MAX_STACK_DEPTH) { + defer(() => { + try { next() } catch (e) { + onError(e) + } + }) + } else { + stackDepth++ + next() + stackDepth-- + } + } + } + cachedWrite.caching = false + cachedWrite.cacheBuffer = [] + cachedWrite.componentBuffer = [] + return cachedWrite +} diff --git a/node_modules/vue/src/sfc/parser.js b/node_modules/vue/src/sfc/parser.js new file mode 100644 index 00000000..868a43ca --- /dev/null +++ b/node_modules/vue/src/sfc/parser.js @@ -0,0 +1,116 @@ +/* @flow */ + +import deindent from 'de-indent' +import { parseHTML } from 'compiler/parser/html-parser' +import { makeMap } from 'shared/util' + +const splitRE = /\r?\n/g +const replaceRE = /./g +const isSpecialTag = makeMap('script,style,template', true) + +type Attribute = { + name: string, + value: string +}; + +/** + * Parse a single-file component (*.vue) file into an SFC Descriptor Object. + */ +export function parseComponent ( + content: string, + options?: Object = {} +): SFCDescriptor { + const sfc: SFCDescriptor = { + template: null, + script: null, + styles: [], + customBlocks: [] + } + let depth = 0 + let currentBlock: ?SFCBlock = null + + function start ( + tag: string, + attrs: Array, + unary: boolean, + start: number, + end: number + ) { + if (depth === 0) { + currentBlock = { + type: tag, + content: '', + start: end, + attrs: attrs.reduce((cumulated, { name, value }) => { + cumulated[name] = value || true + return cumulated + }, {}) + } + if (isSpecialTag(tag)) { + checkAttrs(currentBlock, attrs) + if (tag === 'style') { + sfc.styles.push(currentBlock) + } else { + sfc[tag] = currentBlock + } + } else { // custom blocks + sfc.customBlocks.push(currentBlock) + } + } + if (!unary) { + depth++ + } + } + + function checkAttrs (block: SFCBlock, attrs: Array) { + for (let i = 0; i < attrs.length; i++) { + const attr = attrs[i] + if (attr.name === 'lang') { + block.lang = attr.value + } + if (attr.name === 'scoped') { + block.scoped = true + } + if (attr.name === 'module') { + block.module = attr.value || true + } + if (attr.name === 'src') { + block.src = attr.value + } + } + } + + function end (tag: string, start: number, end: number) { + if (depth === 1 && currentBlock) { + currentBlock.end = start + let text = deindent(content.slice(currentBlock.start, currentBlock.end)) + // pad content so that linters and pre-processors can output correct + // line numbers in errors and warnings + if (currentBlock.type !== 'template' && options.pad) { + text = padContent(currentBlock, options.pad) + text + } + currentBlock.content = text + currentBlock = null + } + depth-- + } + + function padContent (block: SFCBlock, pad: true | "line" | "space") { + if (pad === 'space') { + return content.slice(0, block.start).replace(replaceRE, ' ') + } else { + const offset = content.slice(0, block.start).split(splitRE).length + const padChar = block.type === 'script' && !block.lang + ? '//\n' + : '\n' + return Array(offset).join(padChar) + } + } + + parseHTML(content, { + start, + end + }) + + return sfc +} diff --git a/node_modules/vue/src/shared/constants.js b/node_modules/vue/src/shared/constants.js new file mode 100644 index 00000000..84d019fb --- /dev/null +++ b/node_modules/vue/src/shared/constants.js @@ -0,0 +1,21 @@ +export const SSR_ATTR = 'data-server-rendered' + +export const ASSET_TYPES = [ + 'component', + 'directive', + 'filter' +] + +export const LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured' +] diff --git a/node_modules/vue/src/shared/util.js b/node_modules/vue/src/shared/util.js new file mode 100644 index 00000000..e4884734 --- /dev/null +++ b/node_modules/vue/src/shared/util.js @@ -0,0 +1,324 @@ +/* @flow */ + +export const emptyObject = Object.freeze({}) + +// these helpers produces better vm code in JS engines due to their +// explicitness and function inlining +export function isUndef (v: any): boolean %checks { + return v === undefined || v === null +} + +export function isDef (v: any): boolean %checks { + return v !== undefined && v !== null +} + +export function isTrue (v: any): boolean %checks { + return v === true +} + +export function isFalse (v: any): boolean %checks { + return v === false +} + +/** + * Check if value is primitive + */ +export function isPrimitive (value: any): boolean %checks { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) +} + +/** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ +export function isObject (obj: mixed): boolean %checks { + return obj !== null && typeof obj === 'object' +} + +/** + * Get the raw type string of a value e.g. [object Object] + */ +const _toString = Object.prototype.toString + +export function toRawType (value: any): string { + return _toString.call(value).slice(8, -1) +} + +/** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ +export function isPlainObject (obj: any): boolean { + return _toString.call(obj) === '[object Object]' +} + +export function isRegExp (v: any): boolean { + return _toString.call(v) === '[object RegExp]' +} + +/** + * Check if val is a valid array index. + */ +export function isValidArrayIndex (val: any): boolean { + const n = parseFloat(String(val)) + return n >= 0 && Math.floor(n) === n && isFinite(val) +} + +/** + * Convert a value to a string that is actually rendered. + */ +export function toString (val: any): string { + return val == null + ? '' + : typeof val === 'object' + ? JSON.stringify(val, null, 2) + : String(val) +} + +/** + * Convert a input value to a number for persistence. + * If the conversion fails, return original string. + */ +export function toNumber (val: string): number | string { + const n = parseFloat(val) + return isNaN(n) ? val : n +} + +/** + * Make a map and return a function for checking if a key + * is in that map. + */ +export function makeMap ( + str: string, + expectsLowerCase?: boolean +): (key: string) => true | void { + const map = Object.create(null) + const list: Array = str.split(',') + for (let i = 0; i < list.length; i++) { + map[list[i]] = true + } + return expectsLowerCase + ? val => map[val.toLowerCase()] + : val => map[val] +} + +/** + * Check if a tag is a built-in tag. + */ +export const isBuiltInTag = makeMap('slot,component', true) + +/** + * Check if a attribute is a reserved attribute. + */ +export const isReservedAttribute = makeMap('key,ref,slot,slot-scope,is') + +/** + * Remove an item from an array + */ +export function remove (arr: Array, item: any): Array | void { + if (arr.length) { + const index = arr.indexOf(item) + if (index > -1) { + return arr.splice(index, 1) + } + } +} + +/** + * Check whether the object has the property. + */ +const hasOwnProperty = Object.prototype.hasOwnProperty +export function hasOwn (obj: Object | Array<*>, key: string): boolean { + return hasOwnProperty.call(obj, key) +} + +/** + * Create a cached version of a pure function. + */ +export function cached (fn: F): F { + const cache = Object.create(null) + return (function cachedFn (str: string) { + const hit = cache[str] + return hit || (cache[str] = fn(str)) + }: any) +} + +/** + * Camelize a hyphen-delimited string. + */ +const camelizeRE = /-(\w)/g +export const camelize = cached((str: string): string => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') +}) + +/** + * Capitalize a string. + */ +export const capitalize = cached((str: string): string => { + return str.charAt(0).toUpperCase() + str.slice(1) +}) + +/** + * Hyphenate a camelCase string. + */ +const hyphenateRE = /\B([A-Z])/g +export const hyphenate = cached((str: string): string => { + return str.replace(hyphenateRE, '-$1').toLowerCase() +}) + +/** + * Simple bind polyfill for environments that do not support it... e.g. + * PhantomJS 1.x. Technically we don't need this anymore since native bind is + * now more performant in most browsers, but removing it would be breaking for + * code that was able to run in PhantomJS 1.x, so this must be kept for + * backwards compatibility. + */ + +/* istanbul ignore next */ +function polyfillBind (fn: Function, ctx: Object): Function { + function boundFn (a) { + const l = arguments.length + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length + return boundFn +} + +function nativeBind (fn: Function, ctx: Object): Function { + return fn.bind(ctx) +} + +export const bind = Function.prototype.bind + ? nativeBind + : polyfillBind + +/** + * Convert an Array-like object to a real Array. + */ +export function toArray (list: any, start?: number): Array { + start = start || 0 + let i = list.length - start + const ret: Array = new Array(i) + while (i--) { + ret[i] = list[i + start] + } + return ret +} + +/** + * Mix properties into target object. + */ +export function extend (to: Object, _from: ?Object): Object { + for (const key in _from) { + to[key] = _from[key] + } + return to +} + +/** + * Merge an Array of Objects into a single Object. + */ +export function toObject (arr: Array): Object { + const res = {} + for (let i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]) + } + } + return res +} + +/** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) + */ +export function noop (a?: any, b?: any, c?: any) {} + +/** + * Always return false. + */ +export const no = (a?: any, b?: any, c?: any) => false + +/** + * Return same value + */ +export const identity = (_: any) => _ + +/** + * Generate a static keys string from compiler modules. + */ +export function genStaticKeys (modules: Array): string { + return modules.reduce((keys, m) => { + return keys.concat(m.staticKeys || []) + }, []).join(',') +} + +/** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ +export function looseEqual (a: any, b: any): boolean { + if (a === b) return true + const isObjectA = isObject(a) + const isObjectB = isObject(b) + if (isObjectA && isObjectB) { + try { + const isArrayA = Array.isArray(a) + const isArrayB = Array.isArray(b) + if (isArrayA && isArrayB) { + return a.length === b.length && a.every((e, i) => { + return looseEqual(e, b[i]) + }) + } else if (!isArrayA && !isArrayB) { + const keysA = Object.keys(a) + const keysB = Object.keys(b) + return keysA.length === keysB.length && keysA.every(key => { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } +} + +export function looseIndexOf (arr: Array, val: mixed): number { + for (let i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) return i + } + return -1 +} + +/** + * Ensure a function is called only once. + */ +export function once (fn: Function): Function { + let called = false + return function () { + if (!called) { + called = true + fn.apply(this, arguments) + } + } +} diff --git a/node_modules/vue/types/index.d.ts b/node_modules/vue/types/index.d.ts new file mode 100644 index 00000000..720180d2 --- /dev/null +++ b/node_modules/vue/types/index.d.ts @@ -0,0 +1,37 @@ +import { Vue } from "./vue"; + +export default Vue; + +export { + CreateElement, + VueConstructor +} from "./vue"; + +export { + Component, + AsyncComponent, + ComponentOptions, + FunctionalComponentOptions, + RenderContext, + PropOptions, + ComputedOptions, + WatchHandler, + WatchOptions, + WatchOptionsWithHandler, + DirectiveFunction, + DirectiveOptions +} from "./options"; + +export { + PluginFunction, + PluginObject +} from "./plugin"; + +export { + VNodeChildren, + VNodeChildrenArrayContents, + VNode, + VNodeComponentOptions, + VNodeData, + VNodeDirective +} from "./vnode"; diff --git a/node_modules/vue/types/options.d.ts b/node_modules/vue/types/options.d.ts new file mode 100644 index 00000000..cc58affe --- /dev/null +++ b/node_modules/vue/types/options.d.ts @@ -0,0 +1,182 @@ +import { Vue, CreateElement, CombinedVueInstance } from "./vue"; +import { VNode, VNodeData, VNodeDirective } from "./vnode"; + +type Constructor = { + new (...args: any[]): any; +} + +// we don't support infer props in async component +// N.B. ComponentOptions is contravariant, the default generic should be bottom type +export type Component, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = + | typeof Vue + | FunctionalComponentOptions + | ComponentOptions + +interface EsModuleComponent { + default: Component +} + +export type AsyncComponent, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = ( + resolve: (component: Component) => void, + reject: (reason?: any) => void +) => Promise | void; + +/** + * When the `Computed` type parameter on `ComponentOptions` is inferred, + * it should have a property with the return type of every get-accessor. + * Since there isn't a way to query for the return type of a function, we allow TypeScript + * to infer from the shape of `Accessors` and work backwards. + */ +export type Accessors = { + [K in keyof T]: (() => T[K]) | ComputedOptions +} + +type DataDef = Data | ((this: Readonly & V) => Data) +/** + * This type should be used when an array of strings is used for a component's `props` value. + */ +export type ThisTypedComponentOptionsWithArrayProps = + object & + ComponentOptions, V>, Methods, Computed, PropNames[], Record> & + ThisType>>>; + +/** + * This type should be used when an object mapped to `PropOptions` is used for a component's `props` value. + */ +export type ThisTypedComponentOptionsWithRecordProps = + object & + ComponentOptions, Methods, Computed, RecordPropsDefinition, Props> & + ThisType>>; + +type DefaultData = object | ((this: V) => object); +type DefaultProps = Record; +type DefaultMethods = { [key: string]: (this: V, ...args: any[]) => any }; +type DefaultComputed = { [key: string]: any }; +export interface ComponentOptions< + V extends Vue, + Data=DefaultData, + Methods=DefaultMethods, + Computed=DefaultComputed, + PropsDef=PropsDefinition, + Props=DefaultProps> { + data?: Data; + props?: PropsDef; + propsData?: object; + computed?: Accessors; + methods?: Methods; + watch?: Record | WatchHandler | string>; + + el?: Element | string; + template?: string; + // hack is for funcitonal component type inference, should not used in user code + render?(createElement: CreateElement, hack: RenderContext): VNode; + renderError?: (h: () => VNode, err: Error) => VNode; + staticRenderFns?: ((createElement: CreateElement) => VNode)[]; + + beforeCreate?(this: V): void; + created?(): void; + beforeDestroy?(): void; + destroyed?(): void; + beforeMount?(): void; + mounted?(): void; + beforeUpdate?(): void; + updated?(): void; + activated?(): void; + deactivated?(): void; + errorCaptured?(err: Error, vm: Vue, info: string): boolean | void; + + directives?: { [key: string]: DirectiveFunction | DirectiveOptions }; + components?: { [key: string]: Component | AsyncComponent }; + transitions?: { [key: string]: object }; + filters?: { [key: string]: Function }; + + provide?: object | (() => object); + inject?: InjectOptions; + + model?: { + prop?: string; + event?: string; + }; + + parent?: Vue; + mixins?: (ComponentOptions | typeof Vue)[]; + name?: string; + // TODO: support properly inferred 'extends' + extends?: ComponentOptions | typeof Vue; + delimiters?: [string, string]; + comments?: boolean; + inheritAttrs?: boolean; +} + +export interface FunctionalComponentOptions> { + name?: string; + props?: PropDefs; + inject?: InjectOptions; + functional: boolean; + render?(this: undefined, createElement: CreateElement, context: RenderContext): VNode; +} + +export interface RenderContext { + props: Props; + children: VNode[]; + slots(): any; + data: VNodeData; + parent: Vue; + listeners: { [key: string]: Function | Function[] }; + injections: any +} + +export type Prop = { (): T } | { new (...args: any[]): T & object } + +export type PropValidator = PropOptions | Prop | Prop[]; + +export interface PropOptions { + type?: Prop | Prop[]; + required?: boolean; + default?: T | null | undefined | (() => object); + validator?(value: T): boolean; +} + +export type RecordPropsDefinition = { + [K in keyof T]: PropValidator +} +export type ArrayPropsDefinition = (keyof T)[]; +export type PropsDefinition = ArrayPropsDefinition | RecordPropsDefinition; + +export interface ComputedOptions { + get?(): T; + set?(value: T): void; + cache?: boolean; +} + +export type WatchHandler = (val: T, oldVal: T) => void; + +export interface WatchOptions { + deep?: boolean; + immediate?: boolean; +} + +export interface WatchOptionsWithHandler extends WatchOptions { + handler: WatchHandler; +} + +export type DirectiveFunction = ( + el: HTMLElement, + binding: VNodeDirective, + vnode: VNode, + oldVnode: VNode +) => void; + +export interface DirectiveOptions { + bind?: DirectiveFunction; + inserted?: DirectiveFunction; + update?: DirectiveFunction; + componentUpdated?: DirectiveFunction; + unbind?: DirectiveFunction; +} + +export type InjectKey = string | symbol; + +export type InjectOptions = { + [key: string]: InjectKey | { from?: InjectKey, default?: any } +} | string[]; diff --git a/node_modules/vue/types/plugin.d.ts b/node_modules/vue/types/plugin.d.ts new file mode 100644 index 00000000..5741f862 --- /dev/null +++ b/node_modules/vue/types/plugin.d.ts @@ -0,0 +1,8 @@ +import { Vue as _Vue } from "./vue"; + +export type PluginFunction = (Vue: typeof _Vue, options?: T) => void; + +export interface PluginObject { + install: PluginFunction; + [key: string]: any; +} diff --git a/node_modules/vue/types/vnode.d.ts b/node_modules/vue/types/vnode.d.ts new file mode 100644 index 00000000..5754c433 --- /dev/null +++ b/node_modules/vue/types/vnode.d.ts @@ -0,0 +1,67 @@ +import { Vue } from "./vue"; + +export type ScopedSlot = (props: any) => VNodeChildrenArrayContents | string; + +export type VNodeChildren = VNodeChildrenArrayContents | [ScopedSlot] | string; +export interface VNodeChildrenArrayContents extends Array {} + +export interface VNode { + tag?: string; + data?: VNodeData; + children?: VNode[]; + text?: string; + elm?: Node; + ns?: string; + context?: Vue; + key?: string | number; + componentOptions?: VNodeComponentOptions; + componentInstance?: Vue; + parent?: VNode; + raw?: boolean; + isStatic?: boolean; + isRootInsert: boolean; + isComment: boolean; +} + +export interface VNodeComponentOptions { + Ctor: typeof Vue; + propsData?: object; + listeners?: object; + children?: VNodeChildren; + tag?: string; +} + +export interface VNodeData { + key?: string | number; + slot?: string; + scopedSlots?: { [key: string]: ScopedSlot }; + ref?: string; + tag?: string; + staticClass?: string; + class?: any; + staticStyle?: { [key: string]: any }; + style?: object[] | object; + props?: { [key: string]: any }; + attrs?: { [key: string]: any }; + domProps?: { [key: string]: any }; + hook?: { [key: string]: Function }; + on?: { [key: string]: Function | Function[] }; + nativeOn?: { [key: string]: Function | Function[] }; + transition?: object; + show?: boolean; + inlineTemplate?: { + render: Function; + staticRenderFns: Function[]; + }; + directives?: VNodeDirective[]; + keepAlive?: boolean; +} + +export interface VNodeDirective { + readonly name: string; + readonly value: any; + readonly oldValue: any; + readonly expression: any; + readonly arg: string; + readonly modifiers: { [key: string]: boolean }; +} diff --git a/node_modules/vue/types/vue.d.ts b/node_modules/vue/types/vue.d.ts new file mode 100644 index 00000000..e0b29157 --- /dev/null +++ b/node_modules/vue/types/vue.d.ts @@ -0,0 +1,124 @@ +import { + Component, + AsyncComponent, + ComponentOptions, + FunctionalComponentOptions, + WatchOptionsWithHandler, + WatchHandler, + DirectiveOptions, + DirectiveFunction, + RecordPropsDefinition, + ThisTypedComponentOptionsWithArrayProps, + ThisTypedComponentOptionsWithRecordProps, + WatchOptions, +} from "./options"; +import { VNode, VNodeData, VNodeChildren, ScopedSlot } from "./vnode"; +import { PluginFunction, PluginObject } from "./plugin"; + +export interface CreateElement { + (tag?: string | Component | AsyncComponent | (() => Component), children?: VNodeChildren): VNode; + (tag?: string | Component | AsyncComponent | (() => Component), data?: VNodeData, children?: VNodeChildren): VNode; +} + +export interface Vue { + readonly $el: HTMLElement; + readonly $options: ComponentOptions; + readonly $parent: Vue; + readonly $root: Vue; + readonly $children: Vue[]; + readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[] }; + readonly $slots: { [key: string]: VNode[] }; + readonly $scopedSlots: { [key: string]: ScopedSlot }; + readonly $isServer: boolean; + readonly $data: Record; + readonly $props: Record; + readonly $ssrContext: any; + readonly $vnode: VNode; + readonly $attrs: Record; + readonly $listeners: Record; + + $mount(elementOrSelector?: Element | string, hydrating?: boolean): this; + $forceUpdate(): void; + $destroy(): void; + $set: typeof Vue.set; + $delete: typeof Vue.delete; + $watch( + expOrFn: string, + callback: (this: this, n: any, o: any) => void, + options?: WatchOptions + ): (() => void); + $watch( + expOrFn: (this: this) => T, + callback: (this: this, n: T, o: T) => void, + options?: WatchOptions + ): (() => void); + $on(event: string | string[], callback: Function): this; + $once(event: string, callback: Function): this; + $off(event?: string | string[], callback?: Function): this; + $emit(event: string, ...args: any[]): this; + $nextTick(callback: (this: this) => void): void; + $nextTick(): Promise; + $createElement: CreateElement; +} + +export type CombinedVueInstance = Data & Methods & Computed & Props & Instance; +export type ExtendedVue = VueConstructor & Vue>; + +export interface VueConfiguration { + silent: boolean; + optionMergeStrategies: any; + devtools: boolean; + productionTip: boolean; + performance: boolean; + errorHandler(err: Error, vm: Vue, info: string): void; + warnHandler(msg: string, vm: Vue, trace: string): void; + ignoredElements: (string | RegExp)[]; + keyCodes: { [key: string]: number | number[] }; +} + +export interface VueConstructor { + new (options?: ThisTypedComponentOptionsWithArrayProps): CombinedVueInstance>; + // ideally, the return type should just contains Props, not Record. But TS requires Base constructors must all have the same return type. + new (options?: ThisTypedComponentOptionsWithRecordProps): CombinedVueInstance>; + new (options?: ComponentOptions): CombinedVueInstance>; + + extend(options?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; + extend(options?: ThisTypedComponentOptionsWithRecordProps): ExtendedVue; + extend(definition: FunctionalComponentOptions, PropNames[]>): ExtendedVue>; + extend(definition: FunctionalComponentOptions>): ExtendedVue; + extend(options?: ComponentOptions): ExtendedVue; + + nextTick(callback: () => void, context?: any[]): void; + nextTick(): Promise + set(object: object, key: string, value: T): T; + set(array: T[], key: number, value: T): T; + delete(object: object, key: string): void; + delete(array: T[], key: number): void; + + directive( + id: string, + definition?: DirectiveOptions | DirectiveFunction + ): DirectiveOptions; + filter(id: string, definition?: Function): Function; + + component(id: string): VueConstructor; + component(id: string, constructor: VC): VC; + component(id: string, definition: AsyncComponent): ExtendedVue; + component(id: string, definition?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; + component(id: string, definition?: ThisTypedComponentOptionsWithRecordProps): ExtendedVue; + component(id: string, definition: FunctionalComponentOptions, PropNames[]>): ExtendedVue>; + component(id: string, definition: FunctionalComponentOptions>): ExtendedVue; + component(id: string, definition?: ComponentOptions): ExtendedVue; + + use(plugin: PluginObject | PluginFunction, options?: T): void; + use(plugin: PluginObject | PluginFunction, ...options: any[]): void; + mixin(mixin: VueConstructor | ComponentOptions): void; + compile(template: string): { + render(createElement: typeof Vue.prototype.$createElement): VNode; + staticRenderFns: (() => VNode)[]; + }; + + config: VueConfiguration; +} + +export const Vue: VueConstructor; -- cgit v1.2.3