@ckies/library
Advanced tools
Comparing version 0.1.0 to 0.2.0
@@ -1,1 +0,1 @@ | ||
window.ckies=function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";t.__esModule=!0;var o=function(){function e(){}return e.get=function(e){var t=("; "+document.cookie).split("; "+e+"=");return t&&2===t.length?(t.pop()||"").split(";").shift():null},e.set=function(e,t,n){document.cookie=e+"="+t+"; expires="+n.toUTCString()+"; path=/"},e}();t.Cookie=o},function(e,t,n){"use strict";t.__esModule=!0;var o,i,r=n(0);!function(e){e.NECESSARY="necessary",e.FUNCTIONAL="functional",e.PERFORMANCE="performance",e.MARKETING="marketing"}(o=t.CookieType||(t.CookieType={})),function(e){e.ALLOW="allow",e.DENY="deny"}(i=t.CookieOptions||(t.CookieOptions={})),t.CONFIG_EXPIRATION=31536e6;var u=function(){function e(){}return e.getExpireDate=function(){var e=new Date;return e.setTime(e.getTime()+t.CONFIG_EXPIRATION),e},e.key=function(e){return"ckies_"+e},e.use=function(e){return e===o.NECESSARY||r.Cookie.get(this.key(e))===i.ALLOW},e.deny=function(e){this.set(e,i.DENY)},e.allow=function(e){this.set(e,i.ALLOW)},e.useNecessary=function(){return this.use(o.NECESSARY)},e.useFunctional=function(){return this.use(o.FUNCTIONAL)},e.usePerformance=function(){return this.use(o.PERFORMANCE)},e.useMarketing=function(){return this.use(o.MARKETING)},e.set=function(e,t){e!==o.NECESSARY&&r.Cookie.set(this.key(e),t,this.getExpireDate())},e}();t.CKies=u},function(e,t,n){"use strict";t.__esModule=!0;var o=n(0);t.Cookie=o.Cookie;var i=n(1);t.ckies=i.CKies,t.CookieOptions=i.CookieOptions,t.CookieType=i.CookieType},function(e,t,n){"use strict";t.__esModule=!0;var o=n(2);e.exports=o.ckies}]); | ||
window.ckies=function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";t.__esModule=!0;var o=function(){function e(){}return e.get=function(e){var t=("; "+document.cookie).split("; "+e+"=");return t&&2===t.length?(t.pop()||"").split(";").shift():null},e.set=function(e,t,n){document.cookie=e+"="+t+"; expires="+n.toUTCString()+"; path=/"},e}();t.Cookie=o},function(e,t,n){"use strict";t.__esModule=!0;var o,i,r=n(0);!function(e){e.NECESSARY="necessary",e.FUNCTIONAL="functional",e.PERFORMANCE="performance",e.MARKETING="marketing"}(o=t.CookieType||(t.CookieType={})),function(e){e.ALLOW="allow",e.DENY="deny"}(i=t.CookieOptions||(t.CookieOptions={})),t.CONFIG_EXPIRATION=31536e6;var u=function(){function e(){}return e.getExpireDate=function(){var e=new Date;return e.setTime(e.getTime()+t.CONFIG_EXPIRATION),e},e.key=function(e){return"ckies_"+e},e.use=function(e){return e===o.NECESSARY||(this.isOptIn()?r.Cookie.get(this.key(e))===i.ALLOW:r.Cookie.get(this.key(e))!==i.DENY)},e.deny=function(e){this.set(e,i.DENY)},e.allow=function(e){this.set(e,i.ALLOW)},e.useNecessary=function(){return this.use(o.NECESSARY)},e.useFunctional=function(){return this.use(o.FUNCTIONAL)},e.usePerformance=function(){return this.use(o.PERFORMANCE)},e.useMarketing=function(){return this.use(o.MARKETING)},e.set=function(e,t){e!==o.NECESSARY&&r.Cookie.set(this.key(e),t,this.getExpireDate())},e.isOptIn=function(){return window.hasOwnProperty("CKIES_OPTIN")&&!0===window.CKIES_OPTIN},e}();t.CKies=u},function(e,t,n){"use strict";t.__esModule=!0;var o=n(0);t.Cookie=o.Cookie;var i=n(1);t.ckies=i.CKies,t.CookieOptions=i.CookieOptions,t.CookieType=i.CookieType},function(e,t,n){"use strict";t.__esModule=!0;var o=n(2);e.exports=o.ckies}]); |
@@ -23,2 +23,3 @@ export declare enum CookieType { | ||
private static set(type, option); | ||
private static isOptIn(); | ||
} |
@@ -35,3 +35,3 @@ "use strict"; | ||
} | ||
return Cookie_1.Cookie.get(this.key(type)) === CookieOptions.ALLOW; | ||
return this.isOptIn() ? (Cookie_1.Cookie.get(this.key(type)) === CookieOptions.ALLOW) : (Cookie_1.Cookie.get(this.key(type)) !== CookieOptions.DENY); | ||
}; | ||
@@ -68,2 +68,8 @@ // Deny usage for CookieType | ||
}; | ||
// Check if mode is OPT_IN | ||
CKies.isOptIn = function () { | ||
/* tslint:disable */ | ||
return window.hasOwnProperty('CKIES_OPTIN') && window['CKIES_OPTIN'] === true; | ||
/* tslint:enable */ | ||
}; | ||
return CKies; | ||
@@ -70,0 +76,0 @@ }()); |
@@ -59,3 +59,3 @@ { | ||
}, | ||
"version": "0.1.0" | ||
"version": "0.2.0" | ||
} |
@@ -5,2 +5,6 @@ # Library | ||
### Mode | ||
The **opt-out** mode is enabled per default. If you set `window.CKIES_OPTIN` to `true`, all cookies **but necessary** ones are denied per default. | ||
## Usage | ||
@@ -28,2 +32,2 @@ | ||
</script> | ||
``` | ||
``` |
import { ckies as CKies, CookieType } from '../../src' | ||
import { CONFIG_EXPIRATION } from '../../src/lib/CKies' | ||
describe('CKies', () => { | ||
beforeEach(() => { | ||
delete window['CKIES_OPTIN'] | ||
describe('CKies', () => { | ||
document.cookie.split(';').forEach( | ||
cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`) | ||
) | ||
}) | ||
describe('CONFIGE_EXPIRATION', () => { | ||
@@ -68,2 +75,32 @@ it('should be roughly one year', () => { | ||
describe('.use()', () => { | ||
it('return true per default', () => { | ||
expect(CKies.useNecessary()).toBe(true) | ||
expect(CKies.useFunctional()).toBe(true) | ||
expect(CKies.usePerformance()).toBe(true) | ||
expect(CKies.useMarketing()).toBe(true) | ||
}) | ||
it('support opt-in per global option', () => { | ||
window['CKIES_OPTIN'] = true | ||
expect(CKies.useNecessary()).toBe(true) | ||
expect(CKies.useFunctional()).toBe(false) | ||
expect(CKies.usePerformance()).toBe(false) | ||
expect(CKies.useMarketing()).toBe(false) | ||
window['CKIES_OPTIN'] = false | ||
expect(CKies.useNecessary()).toBe(true) | ||
expect(CKies.useFunctional()).toBe(true) | ||
expect(CKies.usePerformance()).toBe(true) | ||
expect(CKies.useMarketing()).toBe(true) | ||
delete window['CKIES_OPTIN'] | ||
expect(CKies.useNecessary()).toBe(true) | ||
expect(CKies.useFunctional()).toBe(true) | ||
expect(CKies.usePerformance()).toBe(true) | ||
expect(CKies.useMarketing()).toBe(true) | ||
}) | ||
it('return true for necessary cookies', () => { | ||
@@ -70,0 +107,0 @@ CKies.allow(CookieType.NECESSARY) |
Sorry, the diff of this file is not supported yet
232266
302
32