Comparing version 3.0.0-beta.3 to 3.0.0-beta.4
@@ -1,2 +0,2 @@ | ||
/*! js-cookie v3.0.0-beta.3 | MIT */ | ||
/*! js-cookie v3.0.0-beta.4 | MIT */ | ||
; | ||
@@ -13,14 +13,2 @@ (function (global, factory) { | ||
var rfc6265Converter = { | ||
read: function (value) { | ||
return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent) | ||
}, | ||
write: function (value) { | ||
return encodeURIComponent(value).replace( | ||
/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, | ||
decodeURIComponent | ||
) | ||
} | ||
}; | ||
function assign (target) { | ||
@@ -36,2 +24,11 @@ for (var i = 1; i < arguments.length; i++) { | ||
var defaultConverter = { | ||
read: function (value) { | ||
return value.replace(/%3B/g, ';') | ||
}, | ||
write: function (value) { | ||
return value.replace(/;/g, '%3B') | ||
} | ||
}; | ||
function init (converter, defaultAttributes) { | ||
@@ -52,7 +49,5 @@ function set (key, value, attributes) { | ||
value = converter.write(value, key); | ||
key = defaultConverter.write(key).replace(/=/g, '%3D'); | ||
key = encodeURIComponent(key) | ||
.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent) | ||
.replace(/[()]/g, escape); | ||
value = converter.write(String(value), key); | ||
@@ -71,9 +66,2 @@ var stringifiedAttributes = ''; | ||
// Considers RFC 6265 section 5.2: | ||
// ... | ||
// 3. If the remaining unparsed-attributes contains a %x3B (";") | ||
// character: | ||
// Consume the characters of the unparsed-attributes up to, | ||
// not including, the first %x3B (";") character. | ||
// ... | ||
stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; | ||
@@ -97,15 +85,8 @@ } | ||
var cookie = parts.slice(1).join('='); | ||
var name = defaultConverter.read(parts[0]).replace(/%3D/g, '='); | ||
jar[name] = converter.read(cookie, name); | ||
if (cookie[0] === '"') { | ||
cookie = cookie.slice(1, -1); | ||
if (key === name) { | ||
break | ||
} | ||
try { | ||
var name = rfc6265Converter.read(parts[0]); | ||
jar[name] = converter.read(cookie, name); | ||
if (key === name) { | ||
break | ||
} | ||
} catch (e) {} | ||
} | ||
@@ -143,3 +124,3 @@ | ||
var api = init(rfc6265Converter, { path: '/' }); | ||
var api = init(defaultConverter, { path: '/' }); | ||
@@ -146,0 +127,0 @@ return api; |
@@ -1,2 +0,2 @@ | ||
/*! js-cookie v3.0.0-beta.3 | MIT */ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var n=e.Cookies,r=e.Cookies=t();r.noConflict=function(){return e.Cookies=n,r}}())}(this,function(){"use strict";var e={read:function(e){return e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function t(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}return function n(r,o){function i(e,n,i){if("undefined"!=typeof document){"number"==typeof(i=t({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),n=r.write(n,e),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=e+"="+n+c}}return Object.create({set:i,get:function(t){if("undefined"!=typeof document&&(!arguments.length||t)){for(var n=document.cookie?document.cookie.split("; "):[],o={},i=0;i<n.length;i++){var c=n[i].split("="),u=c.slice(1).join("=");'"'===u[0]&&(u=u.slice(1,-1));try{var f=e.read(c[0]);if(o[f]=r.read(u,f),t===f)break}catch(e){}}return t?o[t]:o}},remove:function(e,n){i(e,"",t({},n,{expires:-1}))},withAttributes:function(e){return n(this.converter,t({},this.attributes,e))},withConverter:function(e){return n(t({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(r)}})}(e,{path:"/"})}); | ||
/*! js-cookie v3.0.0-beta.4 | MIT */ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var r=e.Cookies,n=e.Cookies=t();n.noConflict=function(){return e.Cookies=r,n}}())}(this,function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)e[n]=r[n]}return e}var t={read:function(e){return e.replace(/%3B/g,";")},write:function(e){return e.replace(/;/g,"%3B")}};return function r(n,i){function o(r,o,u){if("undefined"!=typeof document){"number"==typeof(u=e({},i,u)).expires&&(u.expires=new Date(Date.now()+864e5*u.expires)),u.expires&&(u.expires=u.expires.toUTCString()),r=t.write(r).replace(/=/g,"%3D"),o=n.write(String(o),r);var c="";for(var f in u)u[f]&&(c+="; "+f,!0!==u[f]&&(c+="="+u[f].split(";")[0]));return document.cookie=r+"="+o+c}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var r=document.cookie?document.cookie.split("; "):[],i={},o=0;o<r.length;o++){var u=r[o].split("="),c=u.slice(1).join("="),f=t.read(u[0]).replace(/%3D/g,"=");if(i[f]=n.read(c,f),e===f)break}return e?i[e]:i}},remove:function(t,r){o(t,"",e({},r,{expires:-1}))},withAttributes:function(t){return r(this.converter,e({},this.attributes,t))},withConverter:function(t){return r(e({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(n)}})}(t,{path:"/"})}); |
{ | ||
"name": "js-cookie", | ||
"version": "3.0.0-beta.3", | ||
"version": "3.0.0-beta.4", | ||
"description": "A simple, lightweight JavaScript API for handling cookies", | ||
@@ -5,0 +5,0 @@ "browser": "dist/js.cookie.js", |
@@ -15,6 +15,5 @@ <p align="center"> | ||
- Supports AMD/CommonJS | ||
- [RFC 6265](https://tools.ietf.org/html/rfc6265) compliant | ||
- Useful [Wiki](https://github.com/js-cookie/js-cookie/wiki) | ||
- Enable [custom encoding/decoding](#converters) | ||
- **< 800 bytes** gzipped! | ||
- **< 700 bytes** gzipped! | ||
@@ -170,8 +169,5 @@ **If you're viewing this at https://github.com/js-cookie/js-cookie, you're reading the documentation for the master branch. | ||
This project is [RFC 6265](http://tools.ietf.org/html/rfc6265#section-4.1.1) compliant. All special characters that are not allowed in the cookie-name or cookie-value are encoded with each one's UTF-8 Hex equivalent using [percent-encoding](http://en.wikipedia.org/wiki/Percent-encoding). | ||
The only character in cookie-name or cookie-value that is allowed and still encoded is the percent `%` character, it is escaped in order to interpret percent input as literal. | ||
Special characters that are not permitted in the cookie name (";" and "=") or cookie value (";") are encoded with their UTF-8 Hex equivalent using [percent-encoding](http://en.wikipedia.org/wiki/Percent-encoding). | ||
Please note that the default encoding/decoding strategy is meant to be interoperable [only between cookies that are read/written by js-cookie](https://github.com/js-cookie/js-cookie/pull/200#discussion_r63270778). To override the default encoding/decoding strategy you need to use a [converter](#converters). | ||
_Note: According to [RFC 6265](https://tools.ietf.org/html/rfc6265#section-6.1), your cookies may get deleted if they are too big or there are too many cookies in the same domain, [more details here](https://github.com/js-cookie/js-cookie/wiki/Frequently-Asked-Questions#why-are-my-cookies-being-deleted)._ | ||
## Cookie Attributes | ||
@@ -183,3 +179,3 @@ | ||
Define when the cookie will be removed. Value can be a [`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) which will be interpreted as days from time of creation or a [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance. If omitted, the cookie becomes a session cookie. | ||
Define when the cookie will be removed. Value must be a [`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) which will be interpreted as days from time of creation or a [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance. If omitted, the cookie becomes a session cookie. | ||
@@ -186,0 +182,0 @@ To create a cookie that expires in less than a day, you can check the [FAQ on the Wiki](https://github.com/js-cookie/js-cookie/wiki/Frequently-Asked-Questions#expire-cookies-in-less-than-a-day). |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
24831
209
361