UNPKG

@analytics/storage-utils

Version:
1 lines 24.1 kB
{"version":3,"file":"storage-utils.cjs","sources":["../../../../node_modules/.pnpm/@analytics+type-utils@0.6.2/node_modules/@analytics/type-utils/dist/analytics-util-types.module.js","../../../../node_modules/.pnpm/@analytics+global-storage-utils@0.1.7/node_modules/@analytics/global-storage-utils/dist/analytics-util-global-storage.module.js","../../../../node_modules/.pnpm/@analytics+cookie-utils@0.2.12/node_modules/@analytics/cookie-utils/dist/analytics-util-cookie.module.js","../../../../node_modules/.pnpm/@analytics+localstorage-utils@0.1.10/node_modules/@analytics/localstorage-utils/dist/analytics-util-localstorage.module.js","../../../../node_modules/.pnpm/@analytics+session-storage-utils@0.0.7/node_modules/@analytics/session-storage-utils/dist/analytics-util-session-storage.module.js","../../src/utils/parse.js","../../src/index.js"],"sourcesContent":["var n=\"function\",t=\"string\",e=\"undefined\",r=\"boolean\",o=\"object\",u=\"array\",i=\"number\",c=\"symbol\",a=\"null\",f=\"error\",s=\"typeError\",l=\"syntaxError\",d=\"asyncFunction\",p=\"generatorFunction\",y=\"asyncGeneratorFunction\",g=function(){},b=\"any\",m=\"*\",v=\"none\",h=\"hidden\",j=\"__\",O=\"form\",S=\"input\",A=\"button\",E=\"select\",N=\"change\",w=\"submit\",D=/^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$/,z=/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Z=/^\\{[\\s\\S]*\\}$|^\\[[\\s\\S]*\\]$/,F=\"undefined\"!=typeof process?process:{},P=F.env&&F.env.NODE_ENV||\"\",x=\"production\"===P,C=\"staging\"===P,L=\"development\"===P,$=\"undefined\"!=typeof document,T=$&&\"localhost\"===window.location.hostname,_=null!=F.versions&&null!=F.versions.node,k=\"undefined\"!=typeof Deno&&void 0!==Deno.core,B=\"object\"==typeof self&&self.constructor&&\"DedicatedWorkerGlobalScope\"===self.constructor.name,G=$&&\"nodejs\"===window.name||\"undefined\"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes(\"Node.js\")||navigator.userAgent.includes(\"jsdom\"));function M(n,t){return t.charAt(0)[n]()+t.slice(1)}var U=M.bind(null,\"toUpperCase\"),H=M.bind(null,\"toLowerCase\");function J(n){return Y(n)?U(\"null\"):\"object\"==typeof n?yn(n):Object.prototype.toString.call(n).slice(8,-1)}function R(n,t){void 0===t&&(t=!0);var e=J(n);return t?H(e):e}function V(n,t){return typeof t===n}var W=V.bind(null,\"function\"),q=V.bind(null,\"string\"),I=V.bind(null,\"undefined\");function K(n){return!I(n)}var Q=V.bind(null,\"boolean\"),X=V.bind(null,\"symbol\");function Y(n){return null===n}function nn(n){return\"number\"===R(n)&&!isNaN(n)}function tn(n){return!isNaN(parseFloat(n))}function en(n){return!!W(n)&&/^class /.test(Function.prototype.toString.call(n))}function rn(n){return\"array\"===R(n)}function on(n){if(!un(n))return!1;for(var t=n;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t}function un(n){return n&&(\"object\"==typeof n||null!==n)}function cn(n){if(!q(n)||!Z.test(n))return!1;try{JSON.parse(n)}catch(n){return!1}return!0}function an(n){if(Y(n))return!0;switch(typeof n){case\"string\":case\"number\":case\"symbol\":case\"undefined\":case\"boolean\":return!0;default:return!1}}function fn(n,t){return on(n)&&W(n[t])}function sn(n){return!!n&&!!(!I(Promise)&&n instanceof Promise||n.then&&W(n.then))}function ln(n){return un(n)&&W(n.throw)&&W(n.return)&&W(n.next)}function dn(n){return\"generatorFunction\"===R(n)}function pn(n){return\"asyncFunction\"===R(n)}function yn(n){return W(n.constructor)?n.constructor.name:null}function gn(n){return n instanceof Set}function bn(n){return n instanceof Map}function mn(n){return n instanceof RegExp}function vn(n){return!(!n.constructor||!W(n.constructor.isBuffer))&&n.constructor.isBuffer(n)}function hn(n){return n instanceof Error||q(n.message)&&n.constructor&&nn(n.constructor.stackTraceLimit)}function jn(n){return un(n)&&q(n.message)&&q(n.name)}function On(n,t){if(\"object\"!=typeof t||Y(t))return!1;if(t instanceof n)return!0;var e=R(new n(\"\"));if(hn(t))for(;t;){if(R(t)===e)return!0;t=Object.getPrototypeOf(t)}return!1}var Sn=On.bind(null,TypeError),An=On.bind(null,SyntaxError);function En(n){if(!W(n))return!1;var t=/{(\\r|\\n|\\s)*}/gm,e=g+\"\";return e===(n.toString().match(t)||[\"\"])[0].replace(t,e)}function Nn(n){try{if(nn(n.length)&&W(n.callee))return!0}catch(n){if(-1!==n.message.indexOf(\"callee\"))return!0}return!1}function wn(n){return!(q(n)&&\"false\"===n.toLowerCase()||!n)}function Dn(n){return!n}function zn(n){return!0===n}function Zn(n){return!1===n}function Fn(n){return!(n.length>320)&&z.test(n)}function Pn(n){return n instanceof Date||W(n.toDateString)&&W(n.getDate)&&W(n.setDate)}function xn(n){return D.test(n)}function Cn(n){return!(!Y(n)&&(rn(n)?n.length:gn(n)||bn(n)?n.size:on(n)&&Object.keys(n).length))}function Ln(n){return NodeList.prototype.isPrototypeOf(n)}function $n(n,t){var e=n instanceof Element||n instanceof HTMLDocument;return e&&t?Tn(n,t):e}function Tn(n,t){return void 0===t&&(t=\"\"),n&&n.nodeName===t.toUpperCase()}function _n(n){var t=[].slice.call(arguments,1);return function(){return n.apply(void 0,[].slice.call(arguments).concat(t))}}var kn=_n($n,\"form\"),Bn=_n($n,\"button\"),Gn=_n($n,\"input\"),Mn=_n($n,\"select\");function Un(n,t){if(!n||\"hidden\"===getComputedStyle(n).visibility)return!0;for(;n;){if(null!=t&&n===t)return!1;if(\"none\"===getComputedStyle(n).display)return!0;n=n.parentElement}return!1}function Hn(n){return n?rn(n)?n:[n]:[]}export{m as ALL,b as ANY,u as ARRAY,d as ASYNC_FUNCTION,y as ASYNC_GENERATOR_FUNCTION,r as BOOLEAN,A as BUTTON,N as CHANGE,P as ENV,f as ERROR,O as FORM,n as FUNCTION,p as GENERATOR_FUNCTION,h as HIDDEN,S as INPUT,v as NONE,a as NULL,i as NUMBER,o as OBJECT,j as PREFIX,z as REGEX_EMAIL,D as REGEX_ISO,Z as REGEX_JSON,E as SELECT,t as STRING,w as SUBMIT,c as SYMBOL,l as SYNTAX_ERROR,s as TYPE_ERROR,e as UNDEFINED,yn as ctorName,Hn as ensureArray,R as getType,J as getTypeName,Nn as isArguments,rn as isArray,pn as isAsyncFunction,Q as isBoolean,$ as isBrowser,vn as isBuffer,Bn as isButton,en as isClass,Pn as isDate,K as isDefined,k as isDeno,L as isDev,$n as isElement,Fn as isEmail,Cn as isEmpty,hn as isError,jn as isErrorLike,Zn as isFalse,Dn as isFalsy,kn as isForm,W as isFunction,ln as isGenerator,dn as isGeneratorFunction,Un as isHidden,Gn as isInput,xn as isIsoDate,G as isJsDom,cn as isJson,T as isLocalHost,bn as isMap,fn as isMethod,En as isNoOp,_ as isNode,Ln as isNodeList,Tn as isNodeType,Y as isNull,nn as isNumber,tn as isNumberLike,on as isObject,un as isObjectLike,an as isPrimitive,x as isProd,sn as isPromise,mn as isRegex,Mn as isSelect,gn as isSet,C as isStaging,q as isString,X as isSymbol,An as isSyntaxError,zn as isTrue,wn as isTruthy,Sn as isTypeError,I as isUndefined,B as isWebWorker,g as noOp};\n//# sourceMappingURL=analytics-util-types.module.js.map\n","import{PREFIX as t,OBJECT as e,UNDEFINED as r}from\"@analytics/type-utils\";var l=\"global\",o=t+\"global\"+t,n=typeof self===e&&self.self===self&&self||typeof global===e&&global.global===global&&global||void 0;function a(t){return n[o][t]}function f(t,e){return n[o][t]=e}function i(t){delete n[o][t]}function u(t,e,r){var l;try{if(b(t)){var o=window[t];l=o[e].bind(o)}}catch(t){}return l||r}n[o]||(n[o]={});var c={};function b(t){if(typeof c[t]!==r)return c[t];try{var e=window[t];e.setItem(r,r),e.removeItem(r)}catch(e){return c[t]=!1}return c[t]=!0}export{l as GLOBAL,o as KEY,a as get,n as globalContext,b as hasSupport,i as remove,f as set,u as wrap};\n//# sourceMappingURL=analytics-util-global-storage.module.js.map\n","import{remove as e,set as o,get as n}from\"@analytics/global-storage-utils\";var t=\"cookie\",i=a(),r=d,c=d;function u(o){return i?d(o,\"\",-1):e(o)}function a(){if(void 0!==i)return i;var e=\"cookiecookie\";try{d(e,e),i=-1!==document.cookie.indexOf(e),u(e)}catch(e){i=!1}return i}function d(e,t,r,c,u,a){if(\"undefined\"!=typeof window){var d=arguments.length>1;return!1===i&&(d?o(e,t):n(e)),d?document.cookie=e+\"=\"+encodeURIComponent(t)+(r?\"; expires=\"+new Date(+new Date+1e3*r).toUTCString()+(c?\"; path=\"+c:\"\")+(u?\"; domain=\"+u:\"\")+(a?\"; secure\":\"\"):\"\"):decodeURIComponent(((\"; \"+document.cookie).split(\"; \"+e+\"=\")[1]||\"\").split(\";\")[0])}}export{t as COOKIE,r as getCookie,a as hasCookies,u as removeCookie,c as setCookie};\n//# sourceMappingURL=analytics-util-cookie.module.js.map\n","import{hasSupport as l,wrap as o,get as a,set as t,remove as e}from\"@analytics/global-storage-utils\";var r=\"localStorage\",g=l.bind(null,\"localStorage\"),c=o(\"localStorage\",\"getItem\",a),m=o(\"localStorage\",\"setItem\",t),S=o(\"localStorage\",\"removeItem\",e);export{r as LOCAL_STORAGE,c as getItem,g as hasLocalStorage,S as removeItem,m as setItem};\n//# sourceMappingURL=analytics-util-localstorage.module.js.map\n","import{hasSupport as e,wrap as s,get as o,set as t,remove as r}from\"@analytics/global-storage-utils\";var a=\"sessionStorage\",i=e.bind(null,\"sessionStorage\"),g=s(\"sessionStorage\",\"getItem\",o),n=s(\"sessionStorage\",\"setItem\",t),l=s(\"sessionStorage\",\"removeItem\",r);export{a as SESSION_STORAGE,g as getSessionItem,i as hasSessionStorage,l as removeSessionItem,n as setSessionItem};\n//# sourceMappingURL=analytics-util-session-storage.module.js.map\n","import { isObject } from '@analytics/type-utils'\n/**\n * Safe JSON parse\n * @param {*} input - value to parse\n * @return {*} parsed input\n */\nexport default function parse(input) {\n let value = input\n try {\n value = JSON.parse(input)\n if (value === 'true') return true\n if (value === 'false') return false\n if (isObject(value)) return value\n if (parseFloat(value) === value) {\n value = parseFloat(value)\n }\n } catch (e) { }\n if (value === null || value === \"\") {\n return\n }\n return value\n}\n","import { set, get, remove, globalContext, GLOBAL } from '@analytics/global-storage-utils'\nimport { getCookie, setCookie, removeCookie, hasCookies, COOKIE } from '@analytics/cookie-utils'\nimport { hasLocalStorage, LOCAL_STORAGE } from '@analytics/localstorage-utils'\nimport { hasSessionStorage, SESSION_STORAGE } from '@analytics/session-storage-utils'\nimport { isUndefined, isString, ANY, ALL } from '@analytics/type-utils'\nimport parse from './utils/parse'\n\n// Verify support\nconst hasStorage = hasLocalStorage()\nconst hasSessionSupport = hasSessionStorage()\nconst hasCookiesSupport = hasCookies()\n\n/**\n * Get storage item from localStorage, cookie, or window\n * @param {string} key - key of item to get\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n * @return {Any} the value of key\n */\nexport function getItem(key, options) {\n if (!key) return\n const type = getStorageType(options)\n const getFirst = !useAll(type)\n\n /* 1. Try localStorage */\n const localValue = useLocal(type) ? parse(localStorage.getItem(key)) : undefined\n if (getFirst && !isUndefined(localValue)) {\n return localValue\n }\n\n /* 2. Fallback to cookie */\n const cookieVal = useCookie(type) ? parse(getCookie(key)) : undefined\n if (getFirst && cookieVal) {\n return cookieVal\n }\n\n /* 3. Fallback to sessionStorage */\n const sessionVal = useSession(type) ? parse(sessionStorage.getItem(key)) : undefined\n if (getFirst && sessionVal) {\n return sessionVal\n }\n\n /* 4. Fallback to window/global. */\n const globalValue = get(key)\n\n return getFirst ? globalValue : {\n localStorage: localValue,\n sessionStorage: sessionVal,\n cookie: cookieVal,\n global: globalValue\n }\n}\n\n/**\n * Store values in localStorage, cookie, or window\n * @param {string} key - key of item to set\n * @param {*} value - value of item to set\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n * @returns {object} returns old value, new values, & location of storage\n */\nexport function setItem(key, value, options) {\n if (!key || isUndefined(value)) {\n return\n }\n const data = {}\n const type = getStorageType(options)\n const saveValue = JSON.stringify(value)\n const setFirst = !useAll(type)\n\n /* 1. Try localStorage */\n if (useLocal(type)) {\n // console.log('SET as localstorage', saveValue)\n data[LOCAL_STORAGE] = format(LOCAL_STORAGE, value, parse(localStorage.getItem(key)))\n // Set LocalStorage item\n localStorage.setItem(key, saveValue)\n if (setFirst) {\n return data[LOCAL_STORAGE]\n }\n }\n\n /* 2. Fallback to cookie */\n if (useCookie(type)) {\n // console.log('SET as cookie', saveValue)\n data[COOKIE] = format(COOKIE, value, parse(getCookie(key)))\n // Set Cookie\n setCookie(key, saveValue)\n if (setFirst) {\n return data[COOKIE]\n }\n }\n\n /* 3. Try sessionStorage */\n if (useSession(type)) {\n // console.log('SET as localstorage', saveValue)\n data[SESSION_STORAGE] = format(SESSION_STORAGE, value, parse(sessionStorage.getItem(key)))\n // Set sessionStorage item\n sessionStorage.setItem(key, saveValue)\n if (setFirst) {\n return data[SESSION_STORAGE]\n }\n }\n\n /* 4. Fallback to window/global */\n data[GLOBAL] = format(GLOBAL, value, get(key))\n // Set global value\n set(key, value)\n // Return set value(s)\n return (setFirst) ? data[GLOBAL] : data\n}\n\n/**\n * Remove values from localStorage, cookie, or window\n * @param {string} key - key of item to set\n * @param {object|string} [options] - storage options. If string location of where to get storage\n * @param {string} [options.storage] - Define type of storage to pull from.\n */\nexport function removeItem(key, options) {\n if (!key) return\n const type = getStorageType(options)\n const values = getItem(key, ALL)\n\n const data = {}\n /* 1. Try localStorage */\n if (!isUndefined(values.localStorage) && useLocal(type)) {\n localStorage.removeItem(key)\n data[LOCAL_STORAGE] = values.localStorage\n }\n /* 2. Fallback to cookie */\n if (!isUndefined(values.cookie) && useCookie(type)) {\n removeCookie(key)\n data[COOKIE] = values.cookie\n }\n /* 3. Try sessionStorage */\n if (!isUndefined(values.sessionStorage) && useSession(type)) {\n sessionStorage.removeItem(key)\n data[SESSION_STORAGE] = values.sessionStorage\n }\n /* 4. Fallback to window/global */\n if (!isUndefined(values.global) && useGlobal(type)) {\n remove(key)\n data[GLOBAL] = values.global\n }\n return data\n}\n\nfunction getStorageType(opts) {\n if (!opts) return ANY\n return isString(opts) ? opts : opts.storage\n}\n\nfunction useGlobal(storage) {\n return useType(storage, GLOBAL)\n}\n\nfunction useLocal(storage) {\n // If has localStorage and storage option not defined, or is set to 'localStorage' or '*'\n return hasStorage && useType(storage, LOCAL_STORAGE)\n}\n\nfunction useCookie(storage) {\n // If has cookies and storage option not defined, or is set to 'cookies' or '*'\n return hasCookiesSupport && useType(storage, COOKIE)\n}\n\nfunction useSession(storage) {\n // If has sessionStorage and storage option not defined, or is set to 'sessionStorage' or '*'\n return hasSessionSupport && useType(storage, SESSION_STORAGE)\n}\n\nfunction useAll(storage) {\n return storage === ALL || storage === 'all'\n}\n\nfunction useType(storage, type) {\n return (storage === ANY || storage === type || useAll(storage))\n}\n\n/**\n * Format response\n * @param {string} location \n * @param {*} current - current value\n * @param {*} previous - previous value\n * @returns \n */\nfunction format(location, current, previous) {\n return { location, current, previous }\n}\n\n// const TYPES = {\n// ALL,\n// ANY,\n// GLOBAL,\n// COOKIE,\n// LOCAL_STORAGE,\n// SESSION_STORAGE, \n// }\n\nexport {\n ALL,\n ANY,\n GLOBAL,\n COOKIE,\n LOCAL_STORAGE,\n SESSION_STORAGE,\n getCookie,\n setCookie,\n removeCookie,\n globalContext,\n hasSessionStorage,\n hasLocalStorage,\n hasCookies\n}\n\nexport default {\n setItem,\n getItem,\n removeItem\n}"],"names":["FUNCTION","UNDEFINED","OBJECT","ANY","process","isBrowser","isLocalHost","text","method","s","charAt","slice","Deno","window","name","navigator","userAgent","includes","upper","bind","lower","getType","val","toLowerCase","getTypeName","ctorName","x","constructor","isSet","Object","prototype","toString","call","type","typeOf","kind","isFunction","isString","isUndefined","errorType","ErrKind","value","isNull","n","typeName","message","isNaN","isNumber","stackTraceLimit","isErrorLike","isError","getPrototypeOf","isTypeError","isElement","element","isEl","Element","HTMLDocument","t","nodeName","toUpperCase","isNodeType","fn","arguments","boundArgs","isForm","TypeError","SyntaxError","bindArgs","GLOBAL","KEY","PREFIX","globalContext","self","global","get","key","set","wrap","operation","fallback","l","hasSupport","storage","e","c","cache","setItem","removeItem","err","COOKIE","isSupported","hasCookies","getCookie","cookie","setCookie","removeCookie","remove","i","tmp","document","indexOf","ttl","path","domain","secure","length","encodeURIComponent","Date","toUTCString","decodeURIComponent","split","LOCAL_STORAGE","hasLocalStorage","SESSION_STORAGE","hasSessionStorage","parse","input","JSON","obj","proto","isObjectLike","isObject","parseFloat","hasStorage","hasSessionSupport","hasCookiesSupport","getItem","options","getStorageType","getFirst","useAll","localValue","useLocal","localStorage","undefined","cookieVal","useCookie","sessionVal","useSession","sessionStorage","globalValue","data","saveValue","stringify","setFirst","format","values","useType","opts","location","current","previous"],"mappings":"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"}