"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCookiesNext = exports.useDeleteCookie = exports.useGetCookie = exports.useSetCookie = exports.useHasCookie = exports.useGetCookies = exports.hasCookie = exports.deleteCookie = exports.setCookie = exports.getCookie = exports.getCookies = void 0; var cookie_1 = require("cookie"); var utils_1 = require("../common/utils"); var react_1 = require("react"); var ensureClientSide = function (options) { if (!(0, utils_1.isClientSide)(options)) { throw new Error('You are trying to access cookies on the server side. Please, use the server-side import with `cookies-next/server` instead.'); } }; var getCookies = function (_options) { ensureClientSide(_options); if ((0, utils_1.getRenderPhase)() === 'server') { return; } var cookies = {}; var documentCookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, len = documentCookies.length; i < len; i++) { var cookieParts = documentCookies[i].split('='); var cookie = cookieParts.slice(1).join('='); var name_1 = cookieParts[0]; cookies[name_1] = cookie; } return cookies; }; exports.getCookies = getCookies; var getCookie = function (key, options) { ensureClientSide(options); var _cookies = getCookies(options); var value = _cookies === null || _cookies === void 0 ? void 0 : _cookies[key]; if (value === undefined) return undefined; return (0, utils_1.decode)(value); }; exports.getCookie = getCookie; var setCookie = function (key, data, options) { ensureClientSide(options); if ((0, utils_1.getRenderPhase)() === 'server') { return; } var _cookieOptions = options || {}; var cookieStr = (0, cookie_1.serialize)(key, (0, utils_1.stringify)(data), __assign({ path: '/' }, _cookieOptions)); document.cookie = cookieStr; }; exports.setCookie = setCookie; var deleteCookie = function (key, options) { ensureClientSide(options); setCookie(key, '', __assign(__assign({}, options), { maxAge: -1 })); }; exports.deleteCookie = deleteCookie; var hasCookie = function (key, options) { ensureClientSide(options); if (!key) return false; var cookies = getCookies(options); if (!cookies) { return false; } return Object.prototype.hasOwnProperty.call(cookies, key); }; exports.hasCookie = hasCookie; var useWrappedCookieFn = function (cookieFnCb) { var _a = (0, react_1.useState)(false), isMounted = _a[0], setIsMounted = _a[1]; (0, react_1.useEffect)(function () { setIsMounted(true); }, []); return isMounted ? cookieFnCb : (function () { }); }; var useGetCookies = function () { return useWrappedCookieFn(getCookies); }; exports.useGetCookies = useGetCookies; var useGetCookie = function () { return useWrappedCookieFn(getCookie); }; exports.useGetCookie = useGetCookie; var useHasCookie = function () { return useWrappedCookieFn(hasCookie); }; exports.useHasCookie = useHasCookie; var useSetCookie = function () { return useWrappedCookieFn(setCookie); }; exports.useSetCookie = useSetCookie; var useDeleteCookie = function () { return useWrappedCookieFn(deleteCookie); }; exports.useDeleteCookie = useDeleteCookie; var useCookiesNext = function () { return { getCookies: useGetCookies(), getCookie: useGetCookie(), hasCookie: useHasCookie(), setCookie: useSetCookie(), deleteCookie: useDeleteCookie(), }; }; exports.useCookiesNext = useCookiesNext; __exportStar(require("../common/types"), exports);