diff --git a/ajax/libs/fermata/0.10.8/fermata.js b/ajax/libs/fermata/0.10.8/fermata.js new file mode 100644 index 00000000000000..4203a8b72af0e5 --- /dev/null +++ b/ajax/libs/fermata/0.10.8/fermata.js @@ -0,0 +1,435 @@ +/* +Fermata: a succinct REST client. +Written by Nathan Vander Wilt (nate@calftrail.com). + +Copyright © 2011 &yet, LLC. +Copyright © 2012–2013 Nathan Vander Wilt. + +Released under the terms of the MIT License: + +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. +*/ + +var Proxy = function () { if ('Proxy' in this) return this.Proxy; }(); + +var fermata = {plugins:{}}; + +fermata.registerPlugin = function (name, plugin) { + fermata.plugins[name] = plugin; + fermata[name] = function () { + var baseURL = {base:"", path:[""], query:{}}, + args = [name].concat([].slice.call(arguments)), + transport = fermata._makeTransport.call(baseURL, "_base").using.apply(null, args); + return fermata._makeNativeURL(transport, baseURL); + }; + if (fermata._useExports) { + exports[name] = fermata[name]; + } +}; + +fermata._makeTransport = function (name, args) { + var baseURL = this, transport = fermata.plugins[name].apply(baseURL, args); + transport.using = function () { + var plugin = arguments[0]; + arguments[0] = transport; + return fermata._makeTransport.call(baseURL, plugin, arguments); + }; + return transport; +}; + +fermata._makeNativeURL = function (transport, url) { + return fermata._wrapTheWrapper(function () { + var args = [].slice.call(arguments), + lastArg = fermata._typeof2(args[args.length-1]); + if (lastArg === 'undefined') { + return fermata._stringForURL(url); + } else if (lastArg === 'function') { + var callback = args.pop(), + data = args.pop(), + headers = fermata._normalize(args.pop() || {}), + method = url.path.pop().toUpperCase(); + if (method === 'DEL') method = 'DELETE'; + return transport({base:url.base, method:method, path:url.path, query:url.query, headers:headers, data:data}, callback); + } else { + var query2 = (lastArg === 'object') ? fermata._extend(fermata._extend({}, url.query), args.pop()) : url.query, + path2 = (args.length) ? url.path.concat(args) : url.path; + return fermata._makeNativeURL(transport, {base:url.base, path:path2, query:query2}); + } + }); +}; + +fermata._wrapTheWrapper = function (impl) { + if (fermata._nodeProxy) return fermata._nodeProxy.createFunction({ + // NOTE: node-proxy has a different set of required handlers than harmony:proxies proposal + 'getOwnPropertyDescriptor': function (name) {}, + 'enumerate': function () { return []; }, + 'delete': function () { return false; }, + 'fix': function () {}, + 'set': function (target, name, val) {}, + + 'get': function (target, name) { + return impl(name); + } + }, impl); + else if (Proxy && Proxy.createFunction) return Proxy.createFunction({ + // fundamental trap stubs - http://wiki.ecmascript.org/doku.php?id=harmony:proxies + 'getOwnPropertyDescriptor': function (name) {}, + 'getPropertyDescriptor': function (name) {}, + 'getPropertyNames': function () { return []; }, + 'enumerate': function () { return []; }, // FF4 console likes this derived trap + 'defineProperty': function () { return false; }, + 'delete': function () { return false; }, + 'fix': function () {}, + + 'get': function (target, name) { + return impl(name); + } + }, impl); + else if (Proxy) return new Proxy(impl, { + 'get': function (target, name) { + return impl(name); + } + }); + else return fermata._extend(impl, { + 'get': function () { return impl('get').apply(null, arguments); }, + 'put': function () { return impl('put').apply(null, arguments); }, + 'post': function () { return impl('post').apply(null, arguments); }, + 'delete': function () { return impl('delete').apply(null, arguments); }, + 'del': function () { return impl('del').apply(null, arguments); } + }); +}; + +fermata._nodeTransport = function (request, callback) { + var url = fermata._stringForURL(request), + url_parts = require('url').parse(url), + headers = {}, + data = null, textResponse = true; + + if (url_parts.auth) { + // TODO: this is a workaround for https://github.com/joyent/node/issues/2736 and should be removed or hardcoded per its resolution + if (require('url').parse("http//either%2for@example").auth !== "either/or") { + url_parts.auth = decodeURIComponent(url_parts.auth); + } + headers['Authorization'] = 'Basic ' + new Buffer(url_parts.auth).toString('base64'); + } + fermata._extend(headers, request.headers); + + if (request.data && request.data.length && request.method === 'GET' || request.method === 'HEAD') { + /* XHR ignores data on these requests, so we'll standardize on that behaviour to keep things consistent. Conveniently, this + avoids https://github.com/joyent/node/issues/989 in situations like https://issues.apache.org/jira/browse/COUCHDB-1146 */ + if (console && console.warn) console.warn("Ignoring data passed to GET or HEAD request."); + } else if (typeof(request.data) === 'string') { + data = new Buffer(request.data, 'utf8'); + // TODO: follow XHR algorithm for charset replacement if Content-Type already set + headers['Content-Type'] || (headers['Content-Type'] = "text/plain;charset=UTF-8"); + } else if (request.data) { + textResponse = false; + data = new Buffer(request.data); + } + + var http = (url_parts.protocol === 'https:') ? require('https') : require('http'); + var req = http.request({ + host: url_parts.hostname, + port: url_parts.port, + method: request.method, + path: url_parts.pathname + (url_parts.search || ''), + headers: headers, + agent: http.globalAgent // HACK: allow users some control over connections via e.g. `require('https').globalAgent = new CustomAgent()` + }); + if (data) { + req.setHeader('Content-Length', data.length); + req.write(data); + } else { + req.setHeader('Content-Length', 0); + } + req.end(); + + req.on('error', function (e) { + callback(e, null); + }); + req.on('response', function (res) { + var responseChunks = [], + responseLength = 0; + res.on('data', function (chunk) { + responseChunks.push(chunk); + responseLength += chunk.length; + }); + function finish(err) { + var responseData = Buffer.concat(responseChunks, responseLength); + if (textResponse) { + // TODO: follow XHR charset algorithm via https://github.com/bnoordhuis/node-iconv + responseData = responseData.toString('utf8'); + } + callback(err || null, {status:res.statusCode, headers:fermata._normalize(res.headers), data:responseData}); + } + res.on('end', finish); + // TODO: is this handler correct? + // (may be a confusion between event on http.ServerResponse vs. http.IncomingMessage) + res.on('close', function () { + finish(new Error("Connection dropped.")); + }); + }); + return req; +}; + +fermata._xhrTransport = function (request, callback) { + var xhr = new XMLHttpRequest(), + url = fermata._stringForURL(request); + + xhr.open(request.method, url, true); + Object.keys(request.headers).forEach(function (k) { + xhr.setRequestHeader(k, request.headers[k]); + }); + xhr.send(request.data); + xhr.onreadystatechange = function () { + if (this.readyState === (xhr.DONE || 4)) { + if (this.status) { + var responseHeaders = {}; + this.getAllResponseHeaders().split("\u000D\u000A").forEach(function (l) { + if (!l) return; + l = l.split("\u003A\u0020"); + responseHeaders[l[0]] = l.slice(1).join("\u003A\u0020"); + }); + // TODO: when XHR2 settles responseBody vs. response, handle "bytes" siteReq.responseType + callback(null, {status:this.status, headers:fermata._normalize(responseHeaders), data:this.responseText}); + } else { + callback(Error("XHR request failed"), null); + } + } + } + return xhr; +}; + +fermata._stringForURL = function (url) { // url={base:"",path:[],query:{}} + var p = url.path.map(function (c) { + return (c.join) ? c.join('/') : encodeURIComponent(c); + }).join('/'); + var q = fermata._flatten(url.query).map(function (kv) { + return encodeURIComponent(kv[0]) + ((kv[1] !== null) ? '=' + encodeURIComponent(kv[1]) : ''); + }).join("&"); + return url.base + p + ((q) ? '?' + q : ''); +}; + +fermata._flatten = function (q) { + var list = []; + Object.keys(q).forEach(function (k) { + var v = q[k]; + if (k[0] === '$') { + k = k.slice(1); + if (k[0] !== '$') { + v = JSON.stringify(v); + } + } + [].concat(v).forEach(function (v) { + list.push([k, v]); + }); + }); + return list; +}; + +fermata._unflatten = function (l) { + var obj = {}; + l.forEach(function (kv) { + var k = kv[0], v = kv[1]; + obj[k] = {}.hasOwnProperty.call(obj, k) ? [].concat(obj[k], v) : v; + }); + return obj; +}; + +fermata._normalize = function (headers) { + var headers_norm = {}; + Object.keys(headers).forEach(function (k) { + var k_norm = k.split('-').map(function (w) { + return w && w[0].toUpperCase() + w.slice(1).toLowerCase(); + }).join('-'); + headers_norm[k_norm] = headers[k]; + }); + return headers_norm; +}; + +fermata._extend = function (target, source) { + Object.keys(source).forEach(function (key) { + target[key] = source[key]; + }); + return target; +}; + +fermata._typeof2 = function (o) { + return (Array.isArray(o)) ? 'array' : typeof(o); +}; + + +if (typeof window === 'undefined') { + fermata._useExports = true; + fermata._transport = fermata._nodeTransport; + fermata.registerPlugin('oauth', require("./oauth").init(fermata)); + if (!Proxy) { + fermata._nodeProxy = require('node-proxy'); + } + exports.registerPlugin = fermata.registerPlugin; + exports.plugins = fermata.plugins; +} else { + fermata._transport = fermata._xhrTransport; +} + + +fermata.registerPlugin('_base', function () { + /* + this = baseURL = {base, path, query} + request = {base, method, path, query, headers, data} + callback = function(error, response) + response = {status, headers, data} + */ + return function (request, callback) { + return fermata._transport(request, callback); + }; +}); + +fermata.registerPlugin('raw', function (transport, config) { + fermata._extend(this, config); + return transport; +}); + +fermata.registerPlugin('statusCheck', function (transport) { + return function (request, callback) { + return transport(request, function (err, response) { + if (!err && response.status.toFixed(0)[0] !== '2') { + err = Error("Bad status code from server: " + response.status); + err.status = response.status; + } + callback(err, response); + }); + }; +}); + +// see http://www.w3.org/TR/html5/association-of-controls-and-forms.html#multipart-form-data +fermata._nodeMultipartEncode = function (data) { + var segno = '' + Math.round(Math.random() * 1e16) + Math.round(Math.random() * 1e16); + this.headers['Content-Type'] && (this.headers['Content-Type'] += "; boundary=" + segno); + + var buffer = new Buffer(0); + function push(l) { // NOTE: Fermata simply isn't gonna win at humongous transfers. + var prevBuffer = buffer, newBuffer = (l instanceof Buffer) ? l : new Buffer(''+l); + buffer = new Buffer(prevBuffer.length + newBuffer.length + 2); + prevBuffer.copy(buffer); newBuffer.copy(buffer, prevBuffer.length); + buffer.write("\r\n", buffer.length - 2); + } + function q(s) { return '"' + s.replace(/"|"/g, "%22").replace(/\r\n|\r|\n/g, ' ') + '"'; } + fermata._flatten(data).forEach(function (kv) { + push("--" + segno); + if ({}.hasOwnProperty.call(kv[1], 'data')) { + var file = kv[1]; + push("Content-Disposition: form-data; name=" + q(kv[0]) + "; filename=" + q(file.name || "blob")); + push("Content-Type: " + (file.type || "application/octet-stream")); + push(''); + push(file.data); + } else { + push("Content-Disposition: form-data; name=" + q(kv[0])); + push(''); + push(kv[1]); + } + }); + push("--" + segno + "--"); + return buffer; +}; + +fermata._xhrMultipartEncode = function (data) { + var form = new FormData(); + fermata._flatten(data).forEach(function (kv) { + form.append(kv[0], kv[1]); + }); + return form; +}; + +fermata.registerPlugin('autoConvert', function (transport, defaultType) { + var TYPES = { + "text/plain" : [ + function (d) { return '' + d; }, + function (d) { return '' + d; } + ], + "application/json": [ + JSON.stringify, + JSON.parse + ], + "application/x-www-form-urlencoded": [ + // see http://www.w3.org/TR/html5/association-of-controls-and-forms.html#application-x-www-form-urlencoded-encoding-algorithm + function (data) { + return fermata._flatten(data).map(function (kv) { + return encodeURIComponent(kv[0]).replace(/%20/g, '+') + '=' + encodeURIComponent(kv[1]).replace(/%20/g, '+'); + }).join("&"); + }, + function (data) { + return fermata._unflatten(data.split("&").map(function (kv) { + return kv.split("=").map(function (c) { return decodeURIComponent(c.replace(/\+/g, ' ')); }); + })); + } + ], + "multipart/form-data": [ + (fermata._transport === fermata._xhrTransport) ? fermata._xhrMultipartEncode : fermata._nodeMultipartEncode, + null + ] + }; + return function (request, callback) { + if (defaultType) { + if (request.method !== 'GET' && request.method !== 'HEAD') // setting Content-Type triggers CORS pre-flight, avoid when data isn't sent + request.headers['Content-Type'] || (request.headers['Content-Type'] = defaultType); + request.headers['Accept'] || (request.headers['Accept'] = defaultType); + } + var reqType = request.headers['Content-Type'], + encoder = (TYPES[reqType] || [])[0]; + if (encoder) { + request.data = request.data && encoder.call(request, request.data); + } + return transport(request, function (err, response) { + var accType = request.headers['Accept'], + resType = response && response.headers['Content-Type'], + decoder = (TYPES[accType] || TYPES[resType] || [])[1]; + var data = response && response.data, + // NOTE: I can only find one precedent (Symfony web framework) for this header extension + meta = response && fermata._extend({'X-Status-Code':response.status}, response.headers); + if (response && response.status === 204) { // handle No-Content responses, HT https://github.com/natevw/fermata/pull/35 + data = null; + } else if (decoder) { + try { + data = decoder.call(response, data); + } catch (e) { + err || (err = e); + } + } + callback(err, data, meta); + }); + }; +}); + +fermata.registerPlugin('json', function (transport, baseURL) { + this.base = baseURL; + return transport.using('statusCheck').using('autoConvert', "application/json"); +}); + + +// TODO: remove this completely before any 1.0 release +fermata.registerPlugin('api', function (transport, temp) { + var correctURL = temp.url.replace(/\/$/, ''); + if (temp.user) { + correctURL = correctURL.replace(/\/\/(\w)/, '//' + temp.user + ':PASSWORD@$1'); + } + if (console && console.warn) console.warn("Using deprecated API: please initialize with `fermata.json(\"" + correctURL + "\")` instead. This plugin will be disabled soon!"); + this.base = correctURL; + return transport.using('statusCheck').using('autoConvert', "application/json"); +}); diff --git a/ajax/libs/fermata/0.10.8/fermata.min.js b/ajax/libs/fermata/0.10.8/fermata.min.js new file mode 100644 index 00000000000000..448727a56c523a --- /dev/null +++ b/ajax/libs/fermata/0.10.8/fermata.min.js @@ -0,0 +1,2 @@ +var Proxy=function(){if("Proxy"in this)return this.Proxy}(),fermata={plugins:{}};fermata.registerPlugin=function(e,t){fermata.plugins[e]=t,fermata[e]=function(){var t={base:"",path:[""],query:{}},r=[e].concat([].slice.call(arguments)),n=fermata._makeTransport.call(t,"_base").using.apply(null,r);return fermata._makeNativeURL(n,t)},fermata._useExports&&(exports[e]=fermata[e])},fermata._makeTransport=function(e,t){var r=this,n=fermata.plugins[e].apply(r,t);return n.using=function(){var e=arguments[0];return arguments[0]=n,fermata._makeTransport.call(r,e,arguments)},n},fermata._makeNativeURL=function(e,t){return fermata._wrapTheWrapper(function(){var r=[].slice.call(arguments),n=fermata._typeof2(r[r.length-1]);if("undefined"===n)return fermata._stringForURL(t);if("function"===n){var a=r.pop(),o=r.pop(),u=fermata._normalize(r.pop()||{}),i=t.path.pop().toUpperCase();return"DEL"===i&&(i="DELETE"),e({base:t.base,method:i,path:t.path,query:t.query,headers:u,data:o},a)}var s="object"===n?fermata._extend(fermata._extend({},t.query),r.pop()):t.query,f=r.length?t.path.concat(r):t.path;return fermata._makeNativeURL(e,{base:t.base,path:f,query:s})})},fermata._wrapTheWrapper=function(e){return fermata._nodeProxy?fermata._nodeProxy.createFunction({getOwnPropertyDescriptor:function(e){},enumerate:function(){return[]},delete:function(){return!1},fix:function(){},set:function(e,t,r){},get:function(t,r){return e(r)}},e):Proxy&&Proxy.createFunction?Proxy.createFunction({getOwnPropertyDescriptor:function(e){},getPropertyDescriptor:function(e){},getPropertyNames:function(){return[]},enumerate:function(){return[]},defineProperty:function(){return!1},delete:function(){return!1},fix:function(){},get:function(t,r){return e(r)}},e):Proxy?new Proxy(e,{get:function(t,r){return e(r)}}):fermata._extend(e,{get:function(){return e("get").apply(null,arguments)},put:function(){return e("put").apply(null,arguments)},post:function(){return e("post").apply(null,arguments)},delete:function(){return e("delete").apply(null,arguments)},del:function(){return e("del").apply(null,arguments)}})},fermata._nodeTransport=function(e,t){var r=fermata._stringForURL(e),n=require("url").parse(r),a={},o=null,u=!0;n.auth&&("either/or"!==require("url").parse("http//either%2for@example").auth&&(n.auth=decodeURIComponent(n.auth)),a.Authorization="Basic "+new Buffer(n.auth).toString("base64")),fermata._extend(a,e.headers),e.data&&e.data.length&&"GET"===e.method||"HEAD"===e.method?console&&console.warn&&console.warn("Ignoring data passed to GET or HEAD request."):"string"==typeof e.data?(o=new Buffer(e.data,"utf8"),a["Content-Type"]||(a["Content-Type"]="text/plain;charset=UTF-8")):e.data&&(u=!1,o=new Buffer(e.data));var i="https:"===n.protocol?require("https"):require("http"),s=i.request({host:n.hostname,port:n.port,method:e.method,path:n.pathname+(n.search||""),headers:a,agent:i.globalAgent});return o?(s.setHeader("Content-Length",o.length),s.write(o)):s.setHeader("Content-Length",0),s.end(),s.on("error",function(e){t(e,null)}),s.on("response",function(e){function r(r){var o=Buffer.concat(n,a);u&&(o=o.toString("utf8")),t(r||null,{status:e.statusCode,headers:fermata._normalize(e.headers),data:o})}var n=[],a=0;e.on("data",function(e){n.push(e),a+=e.length}),e.on("end",r),e.on("close",function(){r(new Error("Connection dropped."))})}),s},fermata._xhrTransport=function(e,t){var r=new XMLHttpRequest,n=fermata._stringForURL(e);return r.open(e.method,n,!0),Object.keys(e.headers).forEach(function(t){r.setRequestHeader(t,e.headers[t])}),r.send(e.data),r.onreadystatechange=function(){if(this.readyState===(r.DONE||4))if(this.status){var e={};this.getAllResponseHeaders().split("\r\n").forEach(function(t){t&&(t=t.split(": "),e[t[0]]=t.slice(1).join(": "))}),t(null,{status:this.status,headers:fermata._normalize(e),data:this.responseText})}else t(Error("XHR request failed"),null)},r},fermata._stringForURL=function(e){var t=e.path.map(function(e){return e.join?e.join("/"):encodeURIComponent(e)}).join("/"),r=fermata._flatten(e.query).map(function(e){return encodeURIComponent(e[0])+(null!==e[1]?"="+encodeURIComponent(e[1]):"")}).join("&");return e.base+t+(r?"?"+r:"")},fermata._flatten=function(e){var t=[];return Object.keys(e).forEach(function(r){var n=e[r];"$"===r[0]&&(r=r.slice(1),"$"!==r[0]&&(n=JSON.stringify(n))),[].concat(n).forEach(function(e){t.push([r,e])})}),t},fermata._unflatten=function(e){var t={};return e.forEach(function(e){var r=e[0],n=e[1];t[r]={}.hasOwnProperty.call(t,r)?[].concat(t[r],n):n}),t},fermata._normalize=function(e){var t={};return Object.keys(e).forEach(function(r){var n=r.split("-").map(function(e){return e&&e[0].toUpperCase()+e.slice(1).toLowerCase()}).join("-");t[n]=e[r]}),t},fermata._extend=function(e,t){return Object.keys(t).forEach(function(r){e[r]=t[r]}),e},fermata._typeof2=function(e){return Array.isArray(e)?"array":typeof e},"undefined"==typeof window?(fermata._useExports=!0,fermata._transport=fermata._nodeTransport,fermata.registerPlugin("oauth",require("./oauth").init(fermata)),Proxy||(fermata._nodeProxy=require("node-proxy")),exports.registerPlugin=fermata.registerPlugin,exports.plugins=fermata.plugins):fermata._transport=fermata._xhrTransport,fermata.registerPlugin("_base",function(){return function(e,t){return fermata._transport(e,t)}}),fermata.registerPlugin("raw",function(e,t){return fermata._extend(this,t),e}),fermata.registerPlugin("statusCheck",function(e){return function(t,r){return e(t,function(e,t){e||"2"===t.status.toFixed(0)[0]||(e=Error("Bad status code from server: "+t.status),e.status=t.status),r(e,t)})}}),fermata._nodeMultipartEncode=function(e){function t(e){var t=a,r=e instanceof Buffer?e:new Buffer(""+e);a=new Buffer(t.length+r.length+2),t.copy(a),r.copy(a,t.length),a.write("\r\n",a.length-2)}function r(e){return'"'+e.replace(/"|"/g,"%22").replace(/\r\n|\r|\n/g," ")+'"'}var n=""+Math.round(1e16*Math.random())+Math.round(1e16*Math.random());this.headers["Content-Type"]&&(this.headers["Content-Type"]+="; boundary="+n);var a=new Buffer(0);return fermata._flatten(e).forEach(function(e){if(t("--"+n),{}.hasOwnProperty.call(e[1],"data")){var a=e[1];t("Content-Disposition: form-data; name="+r(e[0])+"; filename="+r(a.name||"blob")),t("Content-Type: "+(a.type||"application/octet-stream")),t(""),t(a.data)}else t("Content-Disposition: form-data; name="+r(e[0])),t(""),t(e[1])}),t("--"+n+"--"),a},fermata._xhrMultipartEncode=function(e){var t=new FormData;return fermata._flatten(e).forEach(function(e){t.append(e[0],e[1])}),t},fermata.registerPlugin("autoConvert",function(e,t){var r={"text/plain":[function(e){return""+e},function(e){return""+e}],"application/json":[JSON.stringify,JSON.parse],"application/x-www-form-urlencoded":[function(e){return fermata._flatten(e).map(function(e){return encodeURIComponent(e[0]).replace(/%20/g,"+")+"="+encodeURIComponent(e[1]).replace(/%20/g,"+")}).join("&")},function(e){return fermata._unflatten(e.split("&").map(function(e){return e.split("=").map(function(e){return decodeURIComponent(e.replace(/\+/g," "))})}))}],"multipart/form-data":[fermata._transport===fermata._xhrTransport?fermata._xhrMultipartEncode:fermata._nodeMultipartEncode,null]};return function(n,a){t&&("GET"!==n.method&&"HEAD"!==n.method&&(n.headers["Content-Type"]||(n.headers["Content-Type"]=t)),n.headers.Accept||(n.headers.Accept=t));var o=n.headers["Content-Type"],u=(r[o]||[])[0];return u&&(n.data=n.data&&u.call(n,n.data)),e(n,function(e,t){var o=n.headers.Accept,u=t&&t.headers["Content-Type"],i=(r[o]||r[u]||[])[1],s=t&&t.data,f=t&&fermata._extend({"X-Status-Code":t.status},t.headers);if(t&&204===t.status)s=null;else if(i)try{s=i.call(t,s)}catch(t){e||(e=t)}a(e,s,f)})}}),fermata.registerPlugin("json",function(e,t){return this.base=t,e.using("statusCheck").using("autoConvert","application/json")}),fermata.registerPlugin("api",function(e,t){var r=t.url.replace(/\/$/,"");return t.user&&(r=r.replace(/\/\/(\w)/,"//"+t.user+":PASSWORD@$1")),console&&console.warn&&console.warn('Using deprecated API: please initialize with `fermata.json("'+r+'")` instead. This plugin will be disabled soon!'),this.base=r,e.using("statusCheck").using("autoConvert","application/json")}); +//# sourceMappingURL=fermata.min.js.map \ No newline at end of file diff --git a/ajax/libs/fermata/0.10.8/fermata.min.js.map b/ajax/libs/fermata/0.10.8/fermata.min.js.map new file mode 100644 index 00000000000000..23ac755ba1aa76 --- /dev/null +++ b/ajax/libs/fermata/0.10.8/fermata.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["fermata.js"],"names":["Proxy","this","fermata","plugins","registerPlugin","name","plugin","baseURL","base","path","query","args","concat","slice","call","arguments","transport","_makeTransport","using","apply","_makeNativeURL","_useExports","exports","url","_wrapTheWrapper","lastArg","_typeof2","length","_stringForURL","callback","pop","data","headers","_normalize","method","toUpperCase","query2","_extend","path2","impl","_nodeProxy","createFunction","getOwnPropertyDescriptor","enumerate","delete","fix","set","target","val","get","getPropertyDescriptor","getPropertyNames","defineProperty","put","post","del","_nodeTransport","request","url_parts","require","parse","textResponse","auth","decodeURIComponent","Buffer","toString","console","warn","http","protocol","req","host","hostname","port","pathname","search","agent","globalAgent","setHeader","write","end","on","e","res","finish","err","responseData","responseChunks","responseLength","status","statusCode","chunk","push","Error","_xhrTransport","xhr","XMLHttpRequest","open","Object","keys","forEach","k","setRequestHeader","send","onreadystatechange","readyState","DONE","responseHeaders","getAllResponseHeaders","split","l","join","responseText","p","map","c","encodeURIComponent","q","_flatten","kv","list","v","JSON","stringify","_unflatten","obj","hasOwnProperty","headers_norm","k_norm","w","toLowerCase","source","key","o","Array","isArray","window","_transport","init","config","response","toFixed","_nodeMultipartEncode","prevBuffer","buffer","newBuffer","copy","s","replace","segno","Math","round","random","file","type","_xhrMultipartEncode","form","FormData","append","defaultType","TYPES","text/plain","d","application/json","application/x-www-form-urlencoded","multipart/form-data","reqType","encoder","accType","resType","decoder","meta","X-Status-Code","temp","correctURL","user"],"mappings":"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","file":"fermata.min.js"} \ No newline at end of file diff --git a/ajax/libs/fermata/package.json b/ajax/libs/fermata/package.json new file mode 100644 index 00000000000000..6598236c5b4f00 --- /dev/null +++ b/ajax/libs/fermata/package.json @@ -0,0 +1,30 @@ +{ + "name": "fermata", + "filename": "fermata.min.js", + "version": "0.10.8", + "repository": { + "type": "git", + "url": "git://github.com/natevw/fermata.git" + }, + "keywords": [ + "ajax", + "nano", + "javascript", + "cross-browser" + ], + "author": { + "name": "&yet, LLC", + "url": "http://andyet.net" + }, + "description": "Succinct native REST client, for client-side web apps and node.js. Turns URLs into magic JavaScript objects. Supports JSON, CouchDB, OAuth 1.0a, form uploads and more!", + "license": "MIT", + "npmName": "fermata", + "npmFileMap": [ + { + "basePath": "", + "files": [ + "fermata*" + ] + } + ] +}