From 651a79c030410161574260c4bbca54e6c86fb78e Mon Sep 17 00:00:00 2001
From: nobody42 <5514211-nobody42@users.noreply.gitlab.com>
Date: Fri, 27 Mar 2020 17:10:29 +0100
Subject: [PATCH] Added Vue.js v2.6.11
---
core/files.js | 3 +-
core/resources.js | 2 +-
modules/internal/helpers.js | 2 +
pages/updates/updates.html | 2 +
resources/vue/1.0.28/vue.jsm | 10237 -----------------------------
resources/vue/1.0.28/vue.min.jsm | 9 +
resources/vue/2.6.11/vue.min.jsm | 6 +
7 files changed, 22 insertions(+), 10239 deletions(-)
delete mode 100644 resources/vue/1.0.28/vue.jsm
create mode 100644 resources/vue/1.0.28/vue.min.jsm
create mode 100644 resources/vue/2.6.11/vue.min.jsm
diff --git a/core/files.js b/core/files.js
index 62b98d9d..0b4fcd2f 100644
--- a/core/files.js
+++ b/core/files.js
@@ -162,7 +162,8 @@ var files = {
'resources/underscore.js/1.8.3/underscore-min.jsm': true,
// Vue.js
- 'resources/vue/1.0.28/vue.jsm': true,
+ 'resources/vue/1.0.28/vue.min.jsm': true,
+ 'resources/vue/2.6.11/vue.min.jsm': true,
// Web Font Loader
'resources/webfont/1.6.28/webfont.jsm': true,
diff --git a/core/resources.js b/core/resources.js
index c49d9a91..5150b5c4 100644
--- a/core/resources.js
+++ b/core/resources.js
@@ -245,7 +245,7 @@ var resources = {
},
// Vue.js
'vueJs': {
- 'path': 'resources/vue/{version}/vue.jsm',
+ 'path': 'resources/vue/{version}/vue.min.jsm',
'type': 'application/javascript'
},
// Web Font Loader
diff --git a/modules/internal/helpers.js b/modules/internal/helpers.js
index c60b8a93..0f047464 100644
--- a/modules/internal/helpers.js
+++ b/modules/internal/helpers.js
@@ -432,6 +432,8 @@ helpers.setLastVersion = function (type, version) {
version = '1.9.1';
} else if (type.includes('/vue/1.')) {
version = '1.0.28';
+ } else if (type.includes('/vue/2.')) {
+ version = '2.6.11';
} else if (type.includes('webfont')) {
version = '1.6.28';
} else if (type.includes('/webrtc-adapter/6.')) {
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index b855b6e9..f7d4f878 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -41,6 +41,8 @@
Please update your uBlock/uMatrix rules
diff --git a/resources/vue/1.0.28/vue.jsm b/resources/vue/1.0.28/vue.jsm
deleted file mode 100644
index f386e9aa..00000000
--- a/resources/vue/1.0.28/vue.jsm
+++ /dev/null
@@ -1,10237 +0,0 @@
-/*!
- * Vue.js v1.0.28
- * (c) 2016 Evan You
- * Released under the MIT License.
- */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.Vue = factory());
-}(this, (function () { 'use strict';
-
-function set(obj, key, val) {
- if (hasOwn(obj, key)) {
- obj[key] = val;
- return;
- }
- if (obj._isVue) {
- set(obj._data, key, val);
- return;
- }
- var ob = obj.__ob__;
- if (!ob) {
- obj[key] = val;
- return;
- }
- ob.convert(key, val);
- ob.dep.notify();
- if (ob.vms) {
- var i = ob.vms.length;
- while (i--) {
- var vm = ob.vms[i];
- vm._proxy(key);
- vm._digest();
- }
- }
- return val;
-}
-
-/**
- * Delete a property and trigger change if necessary.
- *
- * @param {Object} obj
- * @param {String} key
- */
-
-function del(obj, key) {
- if (!hasOwn(obj, key)) {
- return;
- }
- delete obj[key];
- var ob = obj.__ob__;
- if (!ob) {
- if (obj._isVue) {
- delete obj._data[key];
- obj._digest();
- }
- return;
- }
- ob.dep.notify();
- if (ob.vms) {
- var i = ob.vms.length;
- while (i--) {
- var vm = ob.vms[i];
- vm._unproxy(key);
- vm._digest();
- }
- }
-}
-
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-/**
- * Check whether the object has the property.
- *
- * @param {Object} obj
- * @param {String} key
- * @return {Boolean}
- */
-
-function hasOwn(obj, key) {
- return hasOwnProperty.call(obj, key);
-}
-
-/**
- * Check if an expression is a literal value.
- *
- * @param {String} exp
- * @return {Boolean}
- */
-
-var literalValueRE = /^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/;
-
-function isLiteral(exp) {
- return literalValueRE.test(exp);
-}
-
-/**
- * Check if a string starts with $ or _
- *
- * @param {String} str
- * @return {Boolean}
- */
-
-function isReserved(str) {
- var c = (str + '').charCodeAt(0);
- return c === 0x24 || c === 0x5F;
-}
-
-/**
- * Guard text output, make sure undefined outputs
- * empty string
- *
- * @param {*} value
- * @return {String}
- */
-
-function _toString(value) {
- return value == null ? '' : value.toString();
-}
-
-/**
- * Check and convert possible numeric strings to numbers
- * before setting back to data
- *
- * @param {*} value
- * @return {*|Number}
- */
-
-function toNumber(value) {
- if (typeof value !== 'string') {
- return value;
- } else {
- var parsed = Number(value);
- return isNaN(parsed) ? value : parsed;
- }
-}
-
-/**
- * Convert string boolean literals into real booleans.
- *
- * @param {*} value
- * @return {*|Boolean}
- */
-
-function toBoolean(value) {
- return value === 'true' ? true : value === 'false' ? false : value;
-}
-
-/**
- * Strip quotes from a string
- *
- * @param {String} str
- * @return {String | false}
- */
-
-function stripQuotes(str) {
- var a = str.charCodeAt(0);
- var b = str.charCodeAt(str.length - 1);
- return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;
-}
-
-/**
- * Camelize a hyphen-delimited string.
- *
- * @param {String} str
- * @return {String}
- */
-
-var camelizeRE = /-(\w)/g;
-
-function camelize(str) {
- return str.replace(camelizeRE, toUpper);
-}
-
-function toUpper(_, c) {
- return c ? c.toUpperCase() : '';
-}
-
-/**
- * Hyphenate a camelCase string.
- *
- * @param {String} str
- * @return {String}
- */
-
-var hyphenateRE = /([^-])([A-Z])/g;
-
-function hyphenate(str) {
- return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();
-}
-
-/**
- * Converts hyphen/underscore/slash delimitered names into
- * camelized classNames.
- *
- * e.g. my-component => MyComponent
- * some_else => SomeElse
- * some/comp => SomeComp
- *
- * @param {String} str
- * @return {String}
- */
-
-var classifyRE = /(?:^|[-_\/])(\w)/g;
-
-function classify(str) {
- return str.replace(classifyRE, toUpper);
-}
-
-/**
- * Simple bind, faster than native
- *
- * @param {Function} fn
- * @param {Object} ctx
- * @return {Function}
- */
-
-function bind(fn, ctx) {
- return function (a) {
- var l = arguments.length;
- return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);
- };
-}
-
-/**
- * Convert an Array-like object to a real Array.
- *
- * @param {Array-like} list
- * @param {Number} [start] - start index
- * @return {Array}
- */
-
-function toArray(list, start) {
- start = start || 0;
- var i = list.length - start;
- var ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret;
-}
-
-/**
- * Mix properties into target object.
- *
- * @param {Object} to
- * @param {Object} from
- */
-
-function extend(to, from) {
- var keys = Object.keys(from);
- var i = keys.length;
- while (i--) {
- to[keys[i]] = from[keys[i]];
- }
- return to;
-}
-
-/**
- * Quick object check - this is primarily used to tell
- * Objects from primitive values when we know the value
- * is a JSON-compliant type.
- *
- * @param {*} obj
- * @return {Boolean}
- */
-
-function isObject(obj) {
- return obj !== null && typeof obj === 'object';
-}
-
-/**
- * Strict object type check. Only returns true
- * for plain JavaScript objects.
- *
- * @param {*} obj
- * @return {Boolean}
- */
-
-var toString = Object.prototype.toString;
-var OBJECT_STRING = '[object Object]';
-
-function isPlainObject(obj) {
- return toString.call(obj) === OBJECT_STRING;
-}
-
-/**
- * Array type check.
- *
- * @param {*} obj
- * @return {Boolean}
- */
-
-var isArray = Array.isArray;
-
-/**
- * Define a property.
- *
- * @param {Object} obj
- * @param {String} key
- * @param {*} val
- * @param {Boolean} [enumerable]
- */
-
-function def(obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
- });
-}
-
-/**
- * Debounce a function so it only gets called after the
- * input stops arriving after the given wait period.
- *
- * @param {Function} func
- * @param {Number} wait
- * @return {Function} - the debounced function
- */
-
-function _debounce(func, wait) {
- var timeout, args, context, timestamp, result;
- var later = function later() {
- var last = Date.now() - timestamp;
- if (last < wait && last >= 0) {
- timeout = setTimeout(later, wait - last);
- } else {
- timeout = null;
- result = func.apply(context, args);
- if (!timeout) context = args = null;
- }
- };
- return function () {
- context = this;
- args = arguments;
- timestamp = Date.now();
- if (!timeout) {
- timeout = setTimeout(later, wait);
- }
- return result;
- };
-}
-
-/**
- * Manual indexOf because it's slightly faster than
- * native.
- *
- * @param {Array} arr
- * @param {*} obj
- */
-
-function indexOf(arr, obj) {
- var i = arr.length;
- while (i--) {
- if (arr[i] === obj) return i;
- }
- return -1;
-}
-
-/**
- * Make a cancellable version of an async callback.
- *
- * @param {Function} fn
- * @return {Function}
- */
-
-function cancellable(fn) {
- var cb = function cb() {
- if (!cb.cancelled) {
- return fn.apply(this, arguments);
- }
- };
- cb.cancel = function () {
- cb.cancelled = true;
- };
- return cb;
-}
-
-/**
- * Check if two values are loosely equal - that is,
- * if they are plain objects, do they have the same shape?
- *
- * @param {*} a
- * @param {*} b
- * @return {Boolean}
- */
-
-function looseEqual(a, b) {
- /* eslint-disable eqeqeq */
- return a == b || (isObject(a) && isObject(b) ? JSON.stringify(a) === JSON.stringify(b) : false);
- /* eslint-enable eqeqeq */
-}
-
-var hasProto = ('__proto__' in {});
-
-// Browser environment sniffing
-var inBrowser = typeof window !== 'undefined' && Object.prototype.toString.call(window) !== '[object Object]';
-
-// detect devtools
-var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
-// UA sniffing for working around browser-specific quirks
-var UA = inBrowser && window.navigator.userAgent.toLowerCase();
-var isIE = UA && UA.indexOf('trident') > 0;
-var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
-var isAndroid = UA && UA.indexOf('android') > 0;
-var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
-
-var transitionProp = undefined;
-var transitionEndEvent = undefined;
-var animationProp = undefined;
-var animationEndEvent = undefined;
-
-// Transition property/event sniffing
-if (inBrowser && !isIE9) {
- var isWebkitTrans = window.ontransitionend === undefined && window.onwebkittransitionend !== undefined;
- var isWebkitAnim = window.onanimationend === undefined && window.onwebkitanimationend !== undefined;
- transitionProp = isWebkitTrans ? 'WebkitTransition' : 'transition';
- transitionEndEvent = isWebkitTrans ? 'webkitTransitionEnd' : 'transitionend';
- animationProp = isWebkitAnim ? 'WebkitAnimation' : 'animation';
- animationEndEvent = isWebkitAnim ? 'webkitAnimationEnd' : 'animationend';
-}
-
-/* istanbul ignore next */
-function isNative(Ctor) {
- return (/native code/.test(Ctor.toString())
- );
-}
-
-/**
- * Defer a task to execute it asynchronously. Ideally this
- * should be executed as a microtask, so we leverage
- * MutationObserver if it's available, and fallback to
- * setTimeout(0).
- *
- * @param {Function} cb
- * @param {Object} ctx
- */
-
-var nextTick = (function () {
- var callbacks = [];
- var pending = false;
- var timerFunc = undefined;
-
- function nextTickHandler() {
- pending = false;
- var copies = callbacks.slice(0);
- callbacks.length = 0;
- for (var i = 0; i < copies.length; i++) {
- copies[i]();
- }
- }
-
- // the nextTick behavior leverages the microtask queue, which can be accessed
- // via either native Promise.then or MutationObserver.
- // MutationObserver has wider support, however it is seriously bugged in
- // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
- // completely stops working after triggering a few times... so, if native
- // Promise is available, we will use it:
- /* istanbul ignore if */
- if (typeof Promise !== 'undefined' && isNative(Promise)) {
- var p = Promise.resolve();
- var noop = function noop() {};
- timerFunc = function () {
- p.then(nextTickHandler);
- // in problematic UIWebViews, Promise.then doesn't completely break, but
- // it can get stuck in a weird state where callbacks are pushed into the
- // microtask queue but the queue isn't being flushed, until the browser
- // needs to do some other work, e.g. handle a timer. Therefore we can
- // "force" the microtask queue to be flushed by adding an empty timer.
- if (isIOS) setTimeout(noop);
- };
- } else if (typeof MutationObserver !== 'undefined') {
- // use MutationObserver where native Promise is not available,
- // e.g. IE11, iOS7, Android 4.4
- var counter = 1;
- var observer = new MutationObserver(nextTickHandler);
- var textNode = document.createTextNode(String(counter));
- observer.observe(textNode, {
- characterData: true
- });
- timerFunc = function () {
- counter = (counter + 1) % 2;
- textNode.data = String(counter);
- };
- } else {
- // fallback to setTimeout
- /* istanbul ignore next */
- timerFunc = setTimeout;
- }
-
- return function (cb, ctx) {
- var func = ctx ? function () {
- cb.call(ctx);
- } : cb;
- callbacks.push(func);
- if (pending) return;
- pending = true;
- timerFunc(nextTickHandler, 0);
- };
-})();
-
-var _Set = undefined;
-/* istanbul ignore if */
-if (typeof Set !== 'undefined' && isNative(Set)) {
- // use native Set when available.
- _Set = Set;
-} else {
- // a non-standard Set polyfill that only works with primitive keys.
- _Set = function () {
- this.set = Object.create(null);
- };
- _Set.prototype.has = function (key) {
- return this.set[key] !== undefined;
- };
- _Set.prototype.add = function (key) {
- this.set[key] = 1;
- };
- _Set.prototype.clear = function () {
- this.set = Object.create(null);
- };
-}
-
-function Cache(limit) {
- this.size = 0;
- this.limit = limit;
- this.head = this.tail = undefined;
- this._keymap = Object.create(null);
-}
-
-var p = Cache.prototype;
-
-/**
- * Put
into the cache associated with .
- * Returns the entry which was removed to make room for
- * the new entry. Otherwise undefined is returned.
- * (i.e. if there was enough room already).
- *
- * @param {String} key
- * @param {*} value
- * @return {Entry|undefined}
- */
-
-p.put = function (key, value) {
- var removed;
-
- var entry = this.get(key, true);
- if (!entry) {
- if (this.size === this.limit) {
- removed = this.shift();
- }
- entry = {
- key: key
- };
- this._keymap[key] = entry;
- if (this.tail) {
- this.tail.newer = entry;
- entry.older = this.tail;
- } else {
- this.head = entry;
- }
- this.tail = entry;
- this.size++;
- }
- entry.value = value;
-
- return removed;
-};
-
-/**
- * Purge the least recently used (oldest) entry from the
- * cache. Returns the removed entry or undefined if the
- * cache was empty.
- */
-
-p.shift = function () {
- var entry = this.head;
- if (entry) {
- this.head = this.head.newer;
- this.head.older = undefined;
- entry.newer = entry.older = undefined;
- this._keymap[entry.key] = undefined;
- this.size--;
- }
- return entry;
-};
-
-/**
- * Get and register recent use of . Returns the value
- * associated with or undefined if not in cache.
- *
- * @param {String} key
- * @param {Boolean} returnEntry
- * @return {Entry|*}
- */
-
-p.get = function (key, returnEntry) {
- var entry = this._keymap[key];
- if (entry === undefined) return;
- if (entry === this.tail) {
- return returnEntry ? entry : entry.value;
- }
- // HEAD--------------TAIL
- // <.older .newer>
- // <--- add direction --
- // A B C E
- if (entry.newer) {
- if (entry === this.head) {
- this.head = entry.newer;
- }
- entry.newer.older = entry.older; // C <-- E.
- }
- if (entry.older) {
- entry.older.newer = entry.newer; // C. --> E
- }
- entry.newer = undefined; // D --x
- entry.older = this.tail; // D. --> E
- if (this.tail) {
- this.tail.newer = entry; // E. <-- D
- }
- this.tail = entry;
- return returnEntry ? entry : entry.value;
-};
-
-var cache$1 = new Cache(1000);
-var reservedArgRE = /^in$|^-?\d+/;
-
-/**
- * Parser state
- */
-
-var str;
-var dir;
-var len;
-var index;
-var chr;
-var state;
-var startState = 0;
-var filterState = 1;
-var filterNameState = 2;
-var filterArgState = 3;
-
-var doubleChr = 0x22;
-var singleChr = 0x27;
-var pipeChr = 0x7C;
-var escapeChr = 0x5C;
-var spaceChr = 0x20;
-
-var expStartChr = { 0x5B: 1, 0x7B: 1, 0x28: 1 };
-var expChrPair = { 0x5B: 0x5D, 0x7B: 0x7D, 0x28: 0x29 };
-
-function peek() {
- return str.charCodeAt(index + 1);
-}
-
-function next() {
- return str.charCodeAt(++index);
-}
-
-function eof() {
- return index >= len;
-}
-
-function eatSpace() {
- while (peek() === spaceChr) {
- next();
- }
-}
-
-function isStringStart(chr) {
- return chr === doubleChr || chr === singleChr;
-}
-
-function isExpStart(chr) {
- return expStartChr[chr];
-}
-
-function isExpEnd(start, chr) {
- return expChrPair[start] === chr;
-}
-
-function parseString() {
- var stringQuote = next();
- var chr;
- while (!eof()) {
- chr = next();
- // escape char
- if (chr === escapeChr) {
- next();
- } else if (chr === stringQuote) {
- break;
- }
- }
-}
-
-function parseSpecialExp(chr) {
- var inExp = 0;
- var startChr = chr;
-
- while (!eof()) {
- chr = peek();
- if (isStringStart(chr)) {
- parseString();
- continue;
- }
-
- if (startChr === chr) {
- inExp++;
- }
- if (isExpEnd(startChr, chr)) {
- inExp--;
- }
-
- next();
-
- if (inExp === 0) {
- break;
- }
- }
-}
-
-/**
- * syntax:
- * expression | filterName [arg arg [| filterName arg arg]]
- */
-
-function parseExpression() {
- var start = index;
- while (!eof()) {
- chr = peek();
- if (isStringStart(chr)) {
- parseString();
- } else if (isExpStart(chr)) {
- parseSpecialExp(chr);
- } else if (chr === pipeChr) {
- next();
- chr = peek();
- if (chr === pipeChr) {
- next();
- } else {
- if (state === startState || state === filterArgState) {
- state = filterState;
- }
- break;
- }
- } else if (chr === spaceChr && (state === filterNameState || state === filterArgState)) {
- eatSpace();
- break;
- } else {
- if (state === filterState) {
- state = filterNameState;
- }
- next();
- }
- }
-
- return str.slice(start + 1, index) || null;
-}
-
-function parseFilterList() {
- var filters = [];
- while (!eof()) {
- filters.push(parseFilter());
- }
- return filters;
-}
-
-function parseFilter() {
- var filter = {};
- var args;
-
- state = filterState;
- filter.name = parseExpression().trim();
-
- state = filterArgState;
- args = parseFilterArguments();
-
- if (args.length) {
- filter.args = args;
- }
- return filter;
-}
-
-function parseFilterArguments() {
- var args = [];
- while (!eof() && state !== filterState) {
- var arg = parseExpression();
- if (!arg) {
- break;
- }
- args.push(processFilterArg(arg));
- }
-
- return args;
-}
-
-/**
- * Check if an argument is dynamic and strip quotes.
- *
- * @param {String} arg
- * @return {Object}
- */
-
-function processFilterArg(arg) {
- if (reservedArgRE.test(arg)) {
- return {
- value: toNumber(arg),
- dynamic: false
- };
- } else {
- var stripped = stripQuotes(arg);
- var dynamic = stripped === arg;
- return {
- value: dynamic ? arg : stripped,
- dynamic: dynamic
- };
- }
-}
-
-/**
- * Parse a directive value and extract the expression
- * and its filters into a descriptor.
- *
- * Example:
- *
- * "a + 1 | uppercase" will yield:
- * {
- * expression: 'a + 1',
- * filters: [
- * { name: 'uppercase', args: null }
- * ]
- * }
- *
- * @param {String} s
- * @return {Object}
- */
-
-function parseDirective(s) {
- var hit = cache$1.get(s);
- if (hit) {
- return hit;
- }
-
- // reset parser state
- str = s;
- dir = {};
- len = str.length;
- index = -1;
- chr = '';
- state = startState;
-
- var filters;
-
- if (str.indexOf('|') < 0) {
- dir.expression = str.trim();
- } else {
- dir.expression = parseExpression().trim();
- filters = parseFilterList();
- if (filters.length) {
- dir.filters = filters;
- }
- }
-
- cache$1.put(s, dir);
- return dir;
-}
-
-var directive = Object.freeze({
- parseDirective: parseDirective
-});
-
-var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
-var cache = undefined;
-var tagRE = undefined;
-var htmlRE = undefined;
-/**
- * Escape a string so it can be used in a RegExp
- * constructor.
- *
- * @param {String} str
- */
-
-function escapeRegex(str) {
- return str.replace(regexEscapeRE, '\\$&');
-}
-
-function compileRegex() {
- var open = escapeRegex(config.delimiters[0]);
- var close = escapeRegex(config.delimiters[1]);
- var unsafeOpen = escapeRegex(config.unsafeDelimiters[0]);
- var unsafeClose = escapeRegex(config.unsafeDelimiters[1]);
- tagRE = new RegExp(unsafeOpen + '((?:.|\\n)+?)' + unsafeClose + '|' + open + '((?:.|\\n)+?)' + close, 'g');
- htmlRE = new RegExp('^' + unsafeOpen + '((?:.|\\n)+?)' + unsafeClose + '$');
- // reset cache
- cache = new Cache(1000);
-}
-
-/**
- * Parse a template text string into an array of tokens.
- *
- * @param {String} text
- * @return {Array