lineas-romero-cookies-consent 1.1.8 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,138 +1,138 @@
1
- const C = "CookieConsent";
2
- function y(o) {
1
+ const y = "CookieConsent";
2
+ function C(o) {
3
3
  if (!o || typeof o != "object")
4
4
  throw new Error("initCookieConsent(config): config is required");
5
5
  const e = Array.isArray(o.categories) ? o.categories : [];
6
6
  if (e.length === 0)
7
7
  throw new Error("initCookieConsent(config): config.categories is required");
8
- const t = e.map((i) => {
9
- if (!i || typeof i != "object")
8
+ const i = e.map((a) => {
9
+ if (!a || typeof a != "object")
10
10
  throw new Error("initCookieConsent(config): invalid category");
11
- if (!i.id)
11
+ if (!a.id)
12
12
  throw new Error("initCookieConsent(config): category.id is required");
13
13
  return {
14
- id: String(i.id),
15
- label: i.label ? String(i.label) : String(i.id),
16
- description: i.description ? String(i.description) : "",
17
- enabled: !!i.enabled,
18
- readonly: !!i.readonly,
19
- cookiePatterns: Array.isArray(i.cookiePatterns) ? i.cookiePatterns.map(String) : [],
20
- cookiesDetails: Array.isArray(i.cookiesDetails) ? i.cookiesDetails : []
14
+ id: String(a.id),
15
+ label: a.label ? String(a.label) : String(a.id),
16
+ description: a.description ? String(a.description) : "",
17
+ enabled: !!a.enabled,
18
+ readonly: !!a.readonly,
19
+ cookiePatterns: Array.isArray(a.cookiePatterns) ? a.cookiePatterns.map(String) : [],
20
+ cookiesDetails: Array.isArray(a.cookiesDetails) ? a.cookiesDetails : []
21
21
  };
22
- }), a = o.cookieName ? String(o.cookieName) : C, n = Number.isFinite(o.cookieExpiresDays) ? Number(o.cookieExpiresDays) : 180;
22
+ }), t = o.cookieName ? String(o.cookieName) : y, n = Number.isFinite(o.cookieExpiresDays) ? Number(o.cookieExpiresDays) : 180;
23
23
  return {
24
24
  siteName: o.siteName ? String(o.siteName) : "",
25
25
  autoClear: !!o.autoClear,
26
- cookieName: a,
26
+ cookieName: t,
27
27
  cookieExpiresDays: n,
28
- categories: t,
28
+ categories: i,
29
29
  onAccept: typeof o.onAccept == "function" ? o.onAccept : null
30
30
  };
31
31
  }
32
- function A(o) {
32
+ function S(o) {
33
33
  const e = {};
34
- for (const t of o)
35
- e[t.id] = t.readonly ? !0 : !!t.enabled;
34
+ for (const i of o)
35
+ e[i.id] = i.readonly ? !0 : !!i.enabled;
36
36
  return e;
37
37
  }
38
- function N(o) {
38
+ function _(o) {
39
39
  try {
40
40
  return JSON.parse(decodeURIComponent(o));
41
41
  } catch {
42
42
  return null;
43
43
  }
44
44
  }
45
- function _() {
45
+ function A() {
46
46
  return "LR-" + Math.random().toString(36).substr(2, 9).toUpperCase() + "-" + Date.now().toString(36).toUpperCase();
47
47
  }
48
- function E(o) {
48
+ function D(o) {
49
49
  if (typeof document > "u") return null;
50
50
  const e = document.cookie ? document.cookie.split("; ") : [];
51
- for (const t of e) {
52
- const a = t.indexOf("=");
53
- if ((a >= 0 ? t.slice(0, a) : t) === o)
54
- return a >= 0 ? t.slice(a + 1) : "";
51
+ for (const i of e) {
52
+ const t = i.indexOf("=");
53
+ if ((t >= 0 ? i.slice(0, t) : i) === o)
54
+ return t >= 0 ? i.slice(t + 1) : "";
55
55
  }
56
56
  return null;
57
57
  }
58
- function S(o, e, { expiresDays: t }) {
58
+ function P(o, e, { expiresDays: i }) {
59
59
  if (typeof document > "u") return;
60
- const a = /* @__PURE__ */ new Date();
61
- a.setTime(a.getTime() + t * 24 * 60 * 60 * 1e3);
60
+ const t = /* @__PURE__ */ new Date();
61
+ t.setTime(t.getTime() + i * 24 * 60 * 60 * 1e3);
62
62
  const n = encodeURIComponent(JSON.stringify(e));
63
- document.cookie = `${o}=${n}; Expires=${a.toUTCString()}; Path=/; SameSite=Lax`;
63
+ document.cookie = `${o}=${n}; Expires=${t.toUTCString()}; Path=/; SameSite=Lax`;
64
64
  }
65
65
  function f(o, e) {
66
66
  return e ? o === e ? !0 : o.startsWith(e) : !1;
67
67
  }
68
68
  function m() {
69
69
  return typeof document > "u" ? [] : (document.cookie ? document.cookie.split("; ") : []).map((e) => {
70
- const t = e.indexOf("=");
71
- return t >= 0 ? e.slice(0, t) : e;
70
+ const i = e.indexOf("=");
71
+ return i >= 0 ? e.slice(0, i) : e;
72
72
  }).filter(Boolean);
73
73
  }
74
- function P(o) {
74
+ function N(o) {
75
75
  const e = /* @__PURE__ */ new Set();
76
76
  if (!o) return Array.from(e);
77
77
  e.add(o), o.includes(".") && e.add(`.${o}`);
78
- const t = o.split(".").filter(Boolean);
79
- for (let a = 1; a < t.length - 1; a += 1) {
80
- const n = t.slice(a).join(".");
78
+ const i = o.split(".").filter(Boolean);
79
+ for (let t = 1; t < i.length - 1; t += 1) {
80
+ const n = i.slice(t).join(".");
81
81
  e.add(n), e.add(`.${n}`);
82
82
  }
83
83
  return Array.from(e);
84
84
  }
85
- function k(o) {
85
+ function g(o) {
86
86
  if (typeof document > "u") return;
87
- const e = "Thu, 01 Jan 1970 00:00:00 GMT", t = typeof location < "u" ? location.hostname : "", a = P(t);
87
+ const e = "Thu, 01 Jan 1970 00:00:00 GMT", i = typeof location < "u" ? location.hostname : "", t = N(i);
88
88
  document.cookie = `${o}=; Expires=${e}; Path=/; SameSite=Lax`;
89
- for (const n of a)
89
+ for (const n of t)
90
90
  document.cookie = `${o}=; Expires=${e}; Path=/; Domain=${n}; SameSite=Lax`;
91
91
  }
92
- function h(o, e) {
93
- return o.find((t) => t.id === e) || null;
92
+ function v(o, e) {
93
+ return o.find((i) => i.id === e) || null;
94
94
  }
95
- function w(o, e) {
96
- const t = h(o, e);
97
- return t ? t.cookiePatterns : [];
95
+ function h(o, e) {
96
+ const i = v(o, e);
97
+ return i ? i.cookiePatterns : [];
98
98
  }
99
- function D({ categories: o, allowedPreferences: e }) {
100
- const t = m();
101
- for (const a of o)
102
- if (!e[a.id])
103
- for (const i of t)
104
- a.cookiePatterns.some((c) => f(i, c)) && k(i);
99
+ function E({ categories: o, allowedPreferences: e }) {
100
+ const i = m();
101
+ for (const t of o)
102
+ if (!e[t.id])
103
+ for (const a of i)
104
+ t.cookiePatterns.some((c) => f(a, c)) && g(a);
105
105
  }
106
106
  function p(o, e) {
107
- const t = {};
108
- for (const a of o) {
109
- const n = e && Object.prototype.hasOwnProperty.call(e, a.id) ? !!e[a.id] : !!a.enabled;
110
- t[a.id] = a.readonly ? !0 : n;
107
+ const i = {};
108
+ for (const t of o) {
109
+ const n = e && Object.prototype.hasOwnProperty.call(e, t.id) ? !!e[t.id] : !!t.enabled;
110
+ i[t.id] = t.readonly ? !0 : n;
111
111
  }
112
- return t;
112
+ return i;
113
113
  }
114
114
  function q(o) {
115
- const e = y(o), t = A(e.categories), a = E(e.cookieName), n = a ? N(a) : null;
116
- let i = n && n.preferences ? p(e.categories, n.preferences) : t, s = n ? n.consentId : null, c = n ? n.updatedAt : null;
117
- n && n.preferences && e.onAccept && e.onAccept({ ...i });
115
+ const e = C(o), i = S(e.categories), t = D(e.cookieName), n = t ? _(t) : null;
116
+ let a = n && n.preferences ? p(e.categories, n.preferences) : i, s = n ? n.consentId : null, c = n ? n.updatedAt : null;
117
+ n && n.preferences && e.onAccept && e.onAccept({ ...a });
118
118
  function d(r) {
119
- return i = p(e.categories, r), s || (s = _()), c = (/* @__PURE__ */ new Date()).toISOString(), S(
119
+ return a = p(e.categories, r), s || (s = A()), c = (/* @__PURE__ */ new Date()).toISOString(), P(
120
120
  e.cookieName,
121
121
  {
122
- preferences: i,
122
+ preferences: a,
123
123
  consentId: s,
124
124
  updatedAt: c,
125
125
  siteName: e.siteName
126
126
  },
127
127
  { expiresDays: e.cookieExpiresDays }
128
- ), e.autoClear && D({ categories: e.categories, allowedPreferences: i }), e.onAccept && e.onAccept({ ...i }), { ...i };
128
+ ), e.autoClear && E({ categories: e.categories, allowedPreferences: a }), e.onAccept && e.onAccept({ ...a }), { ...a };
129
129
  }
130
130
  return {
131
131
  getConsentDetails() {
132
132
  return {
133
133
  consentId: s || "No registrado",
134
134
  consentDate: c || "No registrado",
135
- preferences: { ...i }
135
+ preferences: { ...a }
136
136
  };
137
137
  },
138
138
  getConfig() {
@@ -148,7 +148,7 @@ function q(o) {
148
148
  return !!(n && n.preferences);
149
149
  },
150
150
  getPreferences() {
151
- return { ...i };
151
+ return { ...a };
152
152
  },
153
153
  acceptAll() {
154
154
  const r = {};
@@ -163,16 +163,16 @@ function q(o) {
163
163
  return d(r);
164
164
  },
165
165
  setPreferences(r) {
166
- return d({ ...i, ...r || {} });
166
+ return d({ ...a, ...r || {} });
167
167
  },
168
168
  clearCategoryCookies(r) {
169
- const l = w(e.categories, r), g = m();
170
- for (const u of g)
171
- l.some((b) => f(u, b)) && k(u);
169
+ const l = h(e.categories, r), k = m();
170
+ for (const u of k)
171
+ l.some((b) => f(u, b)) && g(u);
172
172
  }
173
173
  };
174
174
  }
175
- const v = (o) => {
175
+ const w = (o) => {
176
176
  if (typeof document > "u" || document.querySelector(`script[src="${o}"]`)) return;
177
177
  const e = document.createElement("script");
178
178
  e.src = o, e.async = !0, document.head.appendChild(e);
@@ -186,7 +186,7 @@ const v = (o) => {
186
186
  description: "Las cookies necesarias ayudan a hacer una página web utilizable activando funciones básicas.",
187
187
  enabled: !0,
188
188
  readonly: !0,
189
- cookiePatterns: ["fh_", "fareharbor", "next-", "__Host-", "connect.sid", "CookieConsent", "NEXT_LOCALE", "fh-", "csrftoken"],
189
+ cookiePatterns: ["fh_", "fareharbor", "next-", "__Host-", "connect.sid", "CookieConsent", "NEXT_LOCALE", "fh-", "csrftoken", "_abck"],
190
190
  cookiesDetails: [
191
191
  {
192
192
  provider: "Lineas Romero",
@@ -195,16 +195,34 @@ const v = (o) => {
195
195
  purpose: "Almacena el estado de consentimiento de cookies del usuario."
196
196
  },
197
197
  {
198
- provider: "Lineas Romero",
199
- name: "NEXT_LOCALE",
198
+ provider: "Stripe",
199
+ name: "m",
200
+ duration: "2 años",
201
+ purpose: "Cookie necesaria para la prevención de fraude y el procesamiento de pagos."
202
+ },
203
+ {
204
+ provider: "Akamai",
205
+ name: "_abck",
206
+ duration: "1 año",
207
+ purpose: "Utilizada para detectar y mitigar el tráfico de bots maliciosos (Seguridad)."
208
+ },
209
+ {
210
+ provider: "FareHarbor",
211
+ name: "fh-sticking-routing",
200
212
  duration: "Sesión",
201
- purpose: "Guarda la preferencia de idioma del usuario."
213
+ purpose: "Mantiene la conexión segura con el servidor de reservas."
214
+ },
215
+ {
216
+ provider: "FareHarbor",
217
+ name: "csrftoken",
218
+ duration: "1 año",
219
+ purpose: "Token de seguridad para prevenir ataques en formularios."
202
220
  },
203
221
  {
204
222
  provider: "FareHarbor",
205
- name: "fh_session",
223
+ name: "fh-units-language / fh-content-language",
206
224
  duration: "Sesión",
207
- purpose: "Necesaria para el proceso de reserva."
225
+ purpose: "Guarda la configuración de idioma y moneda del motor de reservas."
208
226
  }
209
227
  ]
210
228
  },
@@ -248,19 +266,31 @@ const v = (o) => {
248
266
  label: "Marketing",
249
267
  description: 'Las cookies de marketing se utilizan para rastrear a los visitantes en las páginas web. La intención es mostrar anuncios relevantes y atractivos para el usuario individual, y por lo tanto, más valiosos para los editores y terceros anunciantes."',
250
268
  enabled: !1,
251
- cookiePatterns: ["_fbp", "fr", "tr", "_gcl", "__Secure-ENID", "NID", "AEC"],
269
+ cookiePatterns: ["_fbp", "fr", "tr", "_gcl", "__Secure-", "NID", "AEC", "SID", "HSID", "APISID", "SSID", "SAPISID", "OTZ", "SOCS", "1P_JAR", "datr", "sb", "wd"],
252
270
  cookiesDetails: [
253
271
  {
254
272
  provider: "Facebook",
255
273
  name: "_fbp",
256
274
  duration: "3 meses",
257
- purpose: "Utilizada por Facebook para ofrecer una serie de productos publicitarios."
275
+ purpose: "Utilizada por Facebook para ofrecer productos publicitarios."
258
276
  },
259
277
  {
260
- provider: "Google Ads",
261
- name: "_gcl_au",
262
- duration: "3 meses",
263
- purpose: "Utilizada por Google AdSense para experimentar con la eficiencia publicitaria."
278
+ provider: "Google",
279
+ name: "NID / SID / HSID",
280
+ duration: "6 meses - 2 años",
281
+ purpose: "Contienen registros encriptados y firmados de forma digital de la hora de inicio de sesión más reciente y del ID de cuenta de Google."
282
+ },
283
+ {
284
+ provider: "Google",
285
+ name: "__Secure-ENID / __Secure-3PSID",
286
+ duration: "13 meses",
287
+ purpose: "Utilizadas para crear un perfil de intereses y mostrar anuncios relevantes de Google en otros sitios."
288
+ },
289
+ {
290
+ provider: "Google",
291
+ name: "SOCS",
292
+ duration: "13 meses",
293
+ purpose: "Almacena el estado de las elecciones de cookies del usuario para Google."
264
294
  }
265
295
  ]
266
296
  },
@@ -275,22 +305,22 @@ const v = (o) => {
275
305
  ],
276
306
  onAccept: (o) => {
277
307
  if (o.statistics) {
278
- (function(t, a, n, i, s) {
279
- t[i] = t[i] || [], t[i].push({
308
+ (function(i, t, n, a, s) {
309
+ i[a] = i[a] || [], i[a].push({
280
310
  "gtm.start": (/* @__PURE__ */ new Date()).getTime(),
281
311
  event: "gtm.js"
282
312
  });
283
- var c = a.getElementsByTagName(n)[0], d = a.createElement(n), r = "";
313
+ var c = t.getElementsByTagName(n)[0], d = t.createElement(n), r = "";
284
314
  d.async = !0, d.src = "https://www.googletagmanager.com/gtm.js?id=" + s + r, c.parentNode.insertBefore(d, c);
285
- })(window, document, "script", "dataLayer", "GTM-T22MXTS"), v("https://tracker.metricool.com/resources/be.js");
315
+ })(window, document, "script", "dataLayer", "GTM-T22MXTS"), w("https://tracker.metricool.com/resources/be.js");
286
316
  const e = setInterval(() => {
287
317
  window.beTracker && (clearInterval(e), window.beTracker.t({ hash: "dfa94193071c025264595ebeb4647ae3" }));
288
318
  }, 100);
289
319
  }
290
- o.marketing && ((function(e, t, a, n, i, s, c) {
291
- e.fbq || (i = e.fbq = function() {
292
- i.callMethod ? i.callMethod.apply(i, arguments) : i.queue.push(arguments);
293
- }, e._fbq || (e._fbq = i), i.push = i, i.loaded = !0, i.version = "2.0", i.queue = [], s = t.createElement(a), s.async = !0, s.src = n, c = t.getElementsByTagName(a)[0], c.parentNode.insertBefore(s, c));
320
+ o.marketing && ((function(e, i, t, n, a, s, c) {
321
+ e.fbq || (a = e.fbq = function() {
322
+ a.callMethod ? a.callMethod.apply(a, arguments) : a.queue.push(arguments);
323
+ }, e._fbq || (e._fbq = a), a.push = a, a.loaded = !0, a.version = "2.0", a.queue = [], s = i.createElement(t), s.async = !0, s.src = n, c = i.getElementsByTagName(t)[0], c.parentNode.insertBefore(s, c));
294
324
  })(
295
325
  window,
296
326
  document,
@@ -298,7 +328,7 @@ const v = (o) => {
298
328
  "https://connect.facebook.net/en_US/fbevents.js"
299
329
  ), fbq("init", "1048470300095520"), fbq("track", "PageView"));
300
330
  }
301
- }, I = {
331
+ }, L = {
302
332
  siteName: "Apartamentos Lineas Romero",
303
333
  autoClear: !0,
304
334
  categories: [
@@ -398,5 +428,5 @@ export {
398
428
  q as initCookieConsent,
399
429
  x as nextJsConfig,
400
430
  T as visitLaGraciosaConfig,
401
- I as wpApartamentosConfig
431
+ L as wpApartamentosConfig
402
432
  };
@@ -1 +1 @@
1
- (function(d,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(d=typeof globalThis<"u"?globalThis:d||self,f(d.LineasRomeroCookies={}))})(this,(function(d){"use strict";const f="CookieConsent";function C(o){if(!o||typeof o!="object")throw new Error("initCookieConsent(config): config is required");const e=Array.isArray(o.categories)?o.categories:[];if(e.length===0)throw new Error("initCookieConsent(config): config.categories is required");const t=e.map(i=>{if(!i||typeof i!="object")throw new Error("initCookieConsent(config): invalid category");if(!i.id)throw new Error("initCookieConsent(config): category.id is required");return{id:String(i.id),label:i.label?String(i.label):String(i.id),description:i.description?String(i.description):"",enabled:!!i.enabled,readonly:!!i.readonly,cookiePatterns:Array.isArray(i.cookiePatterns)?i.cookiePatterns.map(String):[],cookiesDetails:Array.isArray(i.cookiesDetails)?i.cookiesDetails:[]}}),a=o.cookieName?String(o.cookieName):f,n=Number.isFinite(o.cookieExpiresDays)?Number(o.cookieExpiresDays):180;return{siteName:o.siteName?String(o.siteName):"",autoClear:!!o.autoClear,cookieName:a,cookieExpiresDays:n,categories:t,onAccept:typeof o.onAccept=="function"?o.onAccept:null}}function y(o){const e={};for(const t of o)e[t.id]=t.readonly?!0:!!t.enabled;return e}function A(o){try{return JSON.parse(decodeURIComponent(o))}catch{return null}}function N(){return"LR-"+Math.random().toString(36).substr(2,9).toUpperCase()+"-"+Date.now().toString(36).toUpperCase()}function S(o){if(typeof document>"u")return null;const e=document.cookie?document.cookie.split("; "):[];for(const t of e){const a=t.indexOf("=");if((a>=0?t.slice(0,a):t)===o)return a>=0?t.slice(a+1):""}return null}function _(o,e,{expiresDays:t}){if(typeof document>"u")return;const a=new Date;a.setTime(a.getTime()+t*24*60*60*1e3);const n=encodeURIComponent(JSON.stringify(e));document.cookie=`${o}=${n}; Expires=${a.toUTCString()}; Path=/; SameSite=Lax`}function p(o,e){return e?o===e?!0:o.startsWith(e):!1}function m(){return typeof document>"u"?[]:(document.cookie?document.cookie.split("; "):[]).map(e=>{const t=e.indexOf("=");return t>=0?e.slice(0,t):e}).filter(Boolean)}function E(o){const e=new Set;if(!o)return Array.from(e);e.add(o),o.includes(".")&&e.add(`.${o}`);const t=o.split(".").filter(Boolean);for(let a=1;a<t.length-1;a+=1){const n=t.slice(a).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function g(o){if(typeof document>"u")return;const e="Thu, 01 Jan 1970 00:00:00 GMT",t=typeof location<"u"?location.hostname:"",a=E(t);document.cookie=`${o}=; Expires=${e}; Path=/; SameSite=Lax`;for(const n of a)document.cookie=`${o}=; Expires=${e}; Path=/; Domain=${n}; SameSite=Lax`}function P(o,e){return o.find(t=>t.id===e)||null}function h(o,e){const t=P(o,e);return t?t.cookiePatterns:[]}function w({categories:o,allowedPreferences:e}){const t=m();for(const a of o)if(!e[a.id])for(const i of t)a.cookiePatterns.some(c=>p(i,c))&&g(i)}function k(o,e){const t={};for(const a of o){const n=e&&Object.prototype.hasOwnProperty.call(e,a.id)?!!e[a.id]:!!a.enabled;t[a.id]=a.readonly?!0:n}return t}function D(o){const e=C(o),t=y(e.categories),a=S(e.cookieName),n=a?A(a):null;let i=n&&n.preferences?k(e.categories,n.preferences):t,s=n?n.consentId:null,c=n?n.updatedAt:null;n&&n.preferences&&e.onAccept&&e.onAccept({...i});function l(r){return i=k(e.categories,r),s||(s=N()),c=new Date().toISOString(),_(e.cookieName,{preferences:i,consentId:s,updatedAt:c,siteName:e.siteName},{expiresDays:e.cookieExpiresDays}),e.autoClear&&w({categories:e.categories,allowedPreferences:i}),e.onAccept&&e.onAccept({...i}),{...i}}return{getConsentDetails(){return{consentId:s||"No registrado",consentDate:c||"No registrado",preferences:{...i}}},getConfig(){return{siteName:e.siteName,autoClear:e.autoClear,cookieName:e.cookieName,cookieExpiresDays:e.cookieExpiresDays,categories:e.categories.map(r=>({...r}))}},hasStoredConsent(){return!!(n&&n.preferences)},getPreferences(){return{...i}},acceptAll(){const r={};for(const u of e.categories)r[u.id]=!0;return l(r)},rejectAll(){const r={};for(const u of e.categories)r[u.id]=!!u.readonly;return l(r)},setPreferences(r){return l({...i,...r||{}})},clearCategoryCookies(r){const u=h(e.categories,r),x=m();for(const b of x)u.some(I=>p(b,I))&&g(b)}}}const v=o=>{if(typeof document>"u"||document.querySelector(`script[src="${o}"]`))return;const e=document.createElement("script");e.src=o,e.async=!0,document.head.appendChild(e)},L={siteName:"Lineas Romero NextJS",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Las cookies necesarias ayudan a hacer una página web utilizable activando funciones básicas.",enabled:!0,readonly:!0,cookiePatterns:["fh_","fareharbor","next-","__Host-","connect.sid","CookieConsent","NEXT_LOCALE","fh-","csrftoken"],cookiesDetails:[{provider:"Lineas Romero",name:"CookieConsent",duration:"6 meses",purpose:"Almacena el estado de consentimiento de cookies del usuario."},{provider:"Lineas Romero",name:"NEXT_LOCALE",duration:"Sesión",purpose:"Guarda la preferencia de idioma del usuario."},{provider:"FareHarbor",name:"fh_session",duration:"Sesión",purpose:"Necesaria para el proceso de reserva."}]},{id:"preferences",label:"Preferencias",description:"Las cookies de preferencias permiten a la página web recordar información que cambia la forma en que la página se comporta o el aspecto que tiene.",enabled:!1,cookiePatterns:[],cookiesDetails:[]},{id:"statistics",label:"Estadística",description:"Las cookies de estadística ayudan a los propietarios de sitios web a comprender cómo interactúan los visitantes con los sitios web mediante la recopilación y presentación de información de forma anónima.",enabled:!1,cookiePatterns:["_ga","_gid","_gat","mc_","metricool"],cookiesDetails:[{provider:"Google Analytics",name:"_ga",duration:"2 años",purpose:"Registra una identificación única que se utiliza para generar datos estadísticos."},{provider:"Google Analytics",name:"_gid",duration:"24 horas",purpose:"Registra una identificación única que se utiliza para generar datos estadísticos."},{provider:"Metricool",name:"mc_session",duration:"Sesión",purpose:"Analítica interna de visitas."}]},{id:"marketing",label:"Marketing",description:'Las cookies de marketing se utilizan para rastrear a los visitantes en las páginas web. La intención es mostrar anuncios relevantes y atractivos para el usuario individual, y por lo tanto, más valiosos para los editores y terceros anunciantes."',enabled:!1,cookiePatterns:["_fbp","fr","tr","_gcl","__Secure-ENID","NID","AEC"],cookiesDetails:[{provider:"Facebook",name:"_fbp",duration:"3 meses",purpose:"Utilizada por Facebook para ofrecer una serie de productos publicitarios."},{provider:"Google Ads",name:"_gcl_au",duration:"3 meses",purpose:"Utilizada por Google AdSense para experimentar con la eficiencia publicitaria."}]},{id:"unclassified",label:"No clasificadas",description:"Las cookies no clasificadas son cookies para las que todavía estamos en proceso de clasificar, junto con los proveedores de cookies individuales.",enabled:!1,cookiePatterns:[],cookiesDetails:[]}],onAccept:o=>{if(o.statistics){(function(t,a,n,i,s){t[i]=t[i]||[],t[i].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var c=a.getElementsByTagName(n)[0],l=a.createElement(n),r="";l.async=!0,l.src="https://www.googletagmanager.com/gtm.js?id="+s+r,c.parentNode.insertBefore(l,c)})(window,document,"script","dataLayer","GTM-T22MXTS"),v("https://tracker.metricool.com/resources/be.js");const e=setInterval(()=>{window.beTracker&&(clearInterval(e),window.beTracker.t({hash:"dfa94193071c025264595ebeb4647ae3"}))},100)}o.marketing&&((function(e,t,a,n,i,s,c){e.fbq||(i=e.fbq=function(){i.callMethod?i.callMethod.apply(i,arguments):i.queue.push(arguments)},e._fbq||(e._fbq=i),i.push=i,i.loaded=!0,i.version="2.0",i.queue=[],s=t.createElement(a),s.async=!0,s.src=n,c=t.getElementsByTagName(a)[0],c.parentNode.insertBefore(s,c))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),fbq("init","1048470300095520"),fbq("track","PageView"))}},q={siteName:"Apartamentos Lineas Romero",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Las cookies necesarias ayudan a hacer una página web utilizable activando funciones básicas.",enabled:!0,readonly:!0,cookiePatterns:["wp-settings","wordpress_","pll_","CookieConsent","AEC","__Secure-BUCKET"]},{id:"preferences",label:"Preferencias",description:"Permiten recordar información que cambia el aspecto o comportamiento del sitio.",enabled:!1,cookiePatterns:[]},{id:"statistics",label:"Estadística",description:"Ayudan a comprender cómo interactúan los visitantes con la web.",enabled:!1,cookiePatterns:["_ga","_gid"]},{id:"marketing",label:"Marketing",description:"Se utilizan para rastrear a los visitantes y mostrar anuncios relevantes.",enabled:!1,cookiePatterns:["IDE","_gcl","ar_debug","SOCS","__Secure-ENID","NID","1P_JAR"]},{id:"unclassified",label:"No clasificadas",description:"Cookies en proceso de clasificación.",enabled:!1,cookiePatterns:[]}],onAccept:o=>{o.marketing}},T={siteName:"Visit La Graciosa",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Esenciales para preferencias de idioma y funcionamiento del sitio.",enabled:!0,readonly:!0,cookiePatterns:["pll_","session_id","PHPSESSID"]},{id:"preferences",label:"Preferencias",description:"Configuración regional e idioma.",enabled:!1,cookiePatterns:[]},{id:"statistics",label:"Estadística",description:"Estadísticas de uso anónimo.",enabled:!1,cookiePatterns:["_ga","_gid"]},{id:"marketing",label:"Marketing",description:"Publicidad y seguimiento de conversiones.",enabled:!1,cookiePatterns:["_gcl","_gac"]},{id:"unclassified",label:"No clasificadas",description:"Pendientes de clasificar.",enabled:!1,cookiePatterns:[]}],onAccept:o=>{o.marketing}};d.initCookieConsent=D,d.nextJsConfig=L,d.visitLaGraciosaConfig=T,d.wpApartamentosConfig=q,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(d,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(d=typeof globalThis<"u"?globalThis:d||self,p(d.LineasRomeroCookies={}))})(this,(function(d){"use strict";const p="CookieConsent";function C(o){if(!o||typeof o!="object")throw new Error("initCookieConsent(config): config is required");const e=Array.isArray(o.categories)?o.categories:[];if(e.length===0)throw new Error("initCookieConsent(config): config.categories is required");const a=e.map(i=>{if(!i||typeof i!="object")throw new Error("initCookieConsent(config): invalid category");if(!i.id)throw new Error("initCookieConsent(config): category.id is required");return{id:String(i.id),label:i.label?String(i.label):String(i.id),description:i.description?String(i.description):"",enabled:!!i.enabled,readonly:!!i.readonly,cookiePatterns:Array.isArray(i.cookiePatterns)?i.cookiePatterns.map(String):[],cookiesDetails:Array.isArray(i.cookiesDetails)?i.cookiesDetails:[]}}),t=o.cookieName?String(o.cookieName):p,n=Number.isFinite(o.cookieExpiresDays)?Number(o.cookieExpiresDays):180;return{siteName:o.siteName?String(o.siteName):"",autoClear:!!o.autoClear,cookieName:t,cookieExpiresDays:n,categories:a,onAccept:typeof o.onAccept=="function"?o.onAccept:null}}function y(o){const e={};for(const a of o)e[a.id]=a.readonly?!0:!!a.enabled;return e}function S(o){try{return JSON.parse(decodeURIComponent(o))}catch{return null}}function A(){return"LR-"+Math.random().toString(36).substr(2,9).toUpperCase()+"-"+Date.now().toString(36).toUpperCase()}function _(o){if(typeof document>"u")return null;const e=document.cookie?document.cookie.split("; "):[];for(const a of e){const t=a.indexOf("=");if((t>=0?a.slice(0,t):a)===o)return t>=0?a.slice(t+1):""}return null}function D(o,e,{expiresDays:a}){if(typeof document>"u")return;const t=new Date;t.setTime(t.getTime()+a*24*60*60*1e3);const n=encodeURIComponent(JSON.stringify(e));document.cookie=`${o}=${n}; Expires=${t.toUTCString()}; Path=/; SameSite=Lax`}function f(o,e){return e?o===e?!0:o.startsWith(e):!1}function m(){return typeof document>"u"?[]:(document.cookie?document.cookie.split("; "):[]).map(e=>{const a=e.indexOf("=");return a>=0?e.slice(0,a):e}).filter(Boolean)}function P(o){const e=new Set;if(!o)return Array.from(e);e.add(o),o.includes(".")&&e.add(`.${o}`);const a=o.split(".").filter(Boolean);for(let t=1;t<a.length-1;t+=1){const n=a.slice(t).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function g(o){if(typeof document>"u")return;const e="Thu, 01 Jan 1970 00:00:00 GMT",a=typeof location<"u"?location.hostname:"",t=P(a);document.cookie=`${o}=; Expires=${e}; Path=/; SameSite=Lax`;for(const n of t)document.cookie=`${o}=; Expires=${e}; Path=/; Domain=${n}; SameSite=Lax`}function v(o,e){return o.find(a=>a.id===e)||null}function h(o,e){const a=v(o,e);return a?a.cookiePatterns:[]}function N({categories:o,allowedPreferences:e}){const a=m();for(const t of o)if(!e[t.id])for(const i of a)t.cookiePatterns.some(c=>f(i,c))&&g(i)}function k(o,e){const a={};for(const t of o){const n=e&&Object.prototype.hasOwnProperty.call(e,t.id)?!!e[t.id]:!!t.enabled;a[t.id]=t.readonly?!0:n}return a}function E(o){const e=C(o),a=y(e.categories),t=_(e.cookieName),n=t?S(t):null;let i=n&&n.preferences?k(e.categories,n.preferences):a,s=n?n.consentId:null,c=n?n.updatedAt:null;n&&n.preferences&&e.onAccept&&e.onAccept({...i});function l(r){return i=k(e.categories,r),s||(s=A()),c=new Date().toISOString(),D(e.cookieName,{preferences:i,consentId:s,updatedAt:c,siteName:e.siteName},{expiresDays:e.cookieExpiresDays}),e.autoClear&&N({categories:e.categories,allowedPreferences:i}),e.onAccept&&e.onAccept({...i}),{...i}}return{getConsentDetails(){return{consentId:s||"No registrado",consentDate:c||"No registrado",preferences:{...i}}},getConfig(){return{siteName:e.siteName,autoClear:e.autoClear,cookieName:e.cookieName,cookieExpiresDays:e.cookieExpiresDays,categories:e.categories.map(r=>({...r}))}},hasStoredConsent(){return!!(n&&n.preferences)},getPreferences(){return{...i}},acceptAll(){const r={};for(const u of e.categories)r[u.id]=!0;return l(r)},rejectAll(){const r={};for(const u of e.categories)r[u.id]=!!u.readonly;return l(r)},setPreferences(r){return l({...i,...r||{}})},clearCategoryCookies(r){const u=h(e.categories,r),T=m();for(const b of T)u.some(x=>f(b,x))&&g(b)}}}const w=o=>{if(typeof document>"u"||document.querySelector(`script[src="${o}"]`))return;const e=document.createElement("script");e.src=o,e.async=!0,document.head.appendChild(e)},I={siteName:"Lineas Romero NextJS",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Las cookies necesarias ayudan a hacer una página web utilizable activando funciones básicas.",enabled:!0,readonly:!0,cookiePatterns:["fh_","fareharbor","next-","__Host-","connect.sid","CookieConsent","NEXT_LOCALE","fh-","csrftoken","_abck"],cookiesDetails:[{provider:"Lineas Romero",name:"CookieConsent",duration:"6 meses",purpose:"Almacena el estado de consentimiento de cookies del usuario."},{provider:"Stripe",name:"m",duration:"2 años",purpose:"Cookie necesaria para la prevención de fraude y el procesamiento de pagos."},{provider:"Akamai",name:"_abck",duration:"1 año",purpose:"Utilizada para detectar y mitigar el tráfico de bots maliciosos (Seguridad)."},{provider:"FareHarbor",name:"fh-sticking-routing",duration:"Sesión",purpose:"Mantiene la conexión segura con el servidor de reservas."},{provider:"FareHarbor",name:"csrftoken",duration:"1 año",purpose:"Token de seguridad para prevenir ataques en formularios."},{provider:"FareHarbor",name:"fh-units-language / fh-content-language",duration:"Sesión",purpose:"Guarda la configuración de idioma y moneda del motor de reservas."}]},{id:"preferences",label:"Preferencias",description:"Las cookies de preferencias permiten a la página web recordar información que cambia la forma en que la página se comporta o el aspecto que tiene.",enabled:!1,cookiePatterns:[],cookiesDetails:[]},{id:"statistics",label:"Estadística",description:"Las cookies de estadística ayudan a los propietarios de sitios web a comprender cómo interactúan los visitantes con los sitios web mediante la recopilación y presentación de información de forma anónima.",enabled:!1,cookiePatterns:["_ga","_gid","_gat","mc_","metricool"],cookiesDetails:[{provider:"Google Analytics",name:"_ga",duration:"2 años",purpose:"Registra una identificación única que se utiliza para generar datos estadísticos."},{provider:"Google Analytics",name:"_gid",duration:"24 horas",purpose:"Registra una identificación única que se utiliza para generar datos estadísticos."},{provider:"Metricool",name:"mc_session",duration:"Sesión",purpose:"Analítica interna de visitas."}]},{id:"marketing",label:"Marketing",description:'Las cookies de marketing se utilizan para rastrear a los visitantes en las páginas web. La intención es mostrar anuncios relevantes y atractivos para el usuario individual, y por lo tanto, más valiosos para los editores y terceros anunciantes."',enabled:!1,cookiePatterns:["_fbp","fr","tr","_gcl","__Secure-","NID","AEC","SID","HSID","APISID","SSID","SAPISID","OTZ","SOCS","1P_JAR","datr","sb","wd"],cookiesDetails:[{provider:"Facebook",name:"_fbp",duration:"3 meses",purpose:"Utilizada por Facebook para ofrecer productos publicitarios."},{provider:"Google",name:"NID / SID / HSID",duration:"6 meses - 2 años",purpose:"Contienen registros encriptados y firmados de forma digital de la hora de inicio de sesión más reciente y del ID de cuenta de Google."},{provider:"Google",name:"__Secure-ENID / __Secure-3PSID",duration:"13 meses",purpose:"Utilizadas para crear un perfil de intereses y mostrar anuncios relevantes de Google en otros sitios."},{provider:"Google",name:"SOCS",duration:"13 meses",purpose:"Almacena el estado de las elecciones de cookies del usuario para Google."}]},{id:"unclassified",label:"No clasificadas",description:"Las cookies no clasificadas son cookies para las que todavía estamos en proceso de clasificar, junto con los proveedores de cookies individuales.",enabled:!1,cookiePatterns:[],cookiesDetails:[]}],onAccept:o=>{if(o.statistics){(function(a,t,n,i,s){a[i]=a[i]||[],a[i].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var c=t.getElementsByTagName(n)[0],l=t.createElement(n),r="";l.async=!0,l.src="https://www.googletagmanager.com/gtm.js?id="+s+r,c.parentNode.insertBefore(l,c)})(window,document,"script","dataLayer","GTM-T22MXTS"),w("https://tracker.metricool.com/resources/be.js");const e=setInterval(()=>{window.beTracker&&(clearInterval(e),window.beTracker.t({hash:"dfa94193071c025264595ebeb4647ae3"}))},100)}o.marketing&&((function(e,a,t,n,i,s,c){e.fbq||(i=e.fbq=function(){i.callMethod?i.callMethod.apply(i,arguments):i.queue.push(arguments)},e._fbq||(e._fbq=i),i.push=i,i.loaded=!0,i.version="2.0",i.queue=[],s=a.createElement(t),s.async=!0,s.src=n,c=a.getElementsByTagName(t)[0],c.parentNode.insertBefore(s,c))})(window,document,"script","https://connect.facebook.net/en_US/fbevents.js"),fbq("init","1048470300095520"),fbq("track","PageView"))}},L={siteName:"Apartamentos Lineas Romero",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Las cookies necesarias ayudan a hacer una página web utilizable activando funciones básicas.",enabled:!0,readonly:!0,cookiePatterns:["wp-settings","wordpress_","pll_","CookieConsent","AEC","__Secure-BUCKET"]},{id:"preferences",label:"Preferencias",description:"Permiten recordar información que cambia el aspecto o comportamiento del sitio.",enabled:!1,cookiePatterns:[]},{id:"statistics",label:"Estadística",description:"Ayudan a comprender cómo interactúan los visitantes con la web.",enabled:!1,cookiePatterns:["_ga","_gid"]},{id:"marketing",label:"Marketing",description:"Se utilizan para rastrear a los visitantes y mostrar anuncios relevantes.",enabled:!1,cookiePatterns:["IDE","_gcl","ar_debug","SOCS","__Secure-ENID","NID","1P_JAR"]},{id:"unclassified",label:"No clasificadas",description:"Cookies en proceso de clasificación.",enabled:!1,cookiePatterns:[]}],onAccept:o=>{o.marketing}},q={siteName:"Visit La Graciosa",autoClear:!0,categories:[{id:"necessary",label:"Necesario",description:"Esenciales para preferencias de idioma y funcionamiento del sitio.",enabled:!0,readonly:!0,cookiePatterns:["pll_","session_id","PHPSESSID"]},{id:"preferences",label:"Preferencias",description:"Configuración regional e idioma.",enabled:!1,cookiePatterns:[]},{id:"statistics",label:"Estadística",description:"Estadísticas de uso anónimo.",enabled:!1,cookiePatterns:["_ga","_gid"]},{id:"marketing",label:"Marketing",description:"Publicidad y seguimiento de conversiones.",enabled:!1,cookiePatterns:["_gcl","_gac"]},{id:"unclassified",label:"No clasificadas",description:"Pendientes de clasificar.",enabled:!1,cookiePatterns:[]}],onAccept:o=>{o.marketing}};d.initCookieConsent=E,d.nextJsConfig=I,d.visitLaGraciosaConfig=q,d.wpApartamentosConfig=L,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lineas-romero-cookies-consent",
3
- "version": "1.1.8",
3
+ "version": "1.1.9",
4
4
  "description": "Gestor en vanilla JS + CSS para granular las cookies de las páginas de LR, Apartamentos y Visit La Graciosa de manera manual.",
5
5
  "type": "module",
6
6
  "files": [