lineas-romero-cookies-consent 1.1.8 → 1.1.10

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.
@@ -5,134 +5,134 @@ function y(o) {
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) : C, 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 A(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 v() {
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 _(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 D(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 E(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 = E(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 P(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 N(o, e) {
96
+ const i = P(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 h({ 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 = y(o), i = S(e.categories), t = _(e.cookieName), n = t ? A(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 = v()), c = (/* @__PURE__ */ new Date()).toISOString(), D(
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 && h({ 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 = N(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."
202
214
  },
203
215
  {
204
216
  provider: "FareHarbor",
205
- name: "fh_session",
217
+ name: "csrftoken",
218
+ duration: "1 año",
219
+ purpose: "Token de seguridad para prevenir ataques en formularios."
220
+ },
221
+ {
222
+ provider: "FareHarbor",
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,49 @@ 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", "SEARCH_SAMESITE", "SIDCC"],
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."
276
+ },
277
+ {
278
+ provider: "Facebook",
279
+ name: "datr / sb / wd",
280
+ duration: "2 años",
281
+ purpose: "Identificación de navegador segura y fines publicitarios de Facebook."
282
+ },
283
+ {
284
+ provider: "Google",
285
+ name: "NID / SID / HSID / SIDCC",
286
+ duration: "6 meses - 2 años",
287
+ 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."
288
+ },
289
+ {
290
+ provider: "Google",
291
+ name: "__Secure-ENID / 3PSID / 1PSID",
292
+ duration: "13 meses",
293
+ purpose: "Utilizadas para crear un perfil de intereses y mostrar anuncios relevantes de Google en otros sitios."
294
+ },
295
+ {
296
+ provider: "Google",
297
+ name: "SOCS / AEC",
298
+ duration: "13 meses",
299
+ purpose: "Almacena el estado de las elecciones de cookies y garantiza que las solicitudes dentro de una sesión de navegación sean realizadas por el usuario y no por otros sitios."
300
+ },
301
+ {
302
+ provider: "Google",
303
+ name: "SEARCH_SAMESITE",
304
+ duration: "6 meses",
305
+ purpose: "Se utiliza para evitar que el navegador envíe esta cookie junto con solicitudes entre sitios (Cross-Site) para proteger la seguridad del usuario."
258
306
  },
259
307
  {
260
308
  provider: "Google Ads",
261
309
  name: "_gcl_au",
262
310
  duration: "3 meses",
263
- purpose: "Utilizada por Google AdSense para experimentar con la eficiencia publicitaria."
311
+ purpose: "Experimentación con la eficiencia publicitaria."
264
312
  }
265
313
  ]
266
314
  },
@@ -275,22 +323,22 @@ const v = (o) => {
275
323
  ],
276
324
  onAccept: (o) => {
277
325
  if (o.statistics) {
278
- (function(t, a, n, i, s) {
279
- t[i] = t[i] || [], t[i].push({
326
+ (function(i, t, n, a, s) {
327
+ i[a] = i[a] || [], i[a].push({
280
328
  "gtm.start": (/* @__PURE__ */ new Date()).getTime(),
281
329
  event: "gtm.js"
282
330
  });
283
- var c = a.getElementsByTagName(n)[0], d = a.createElement(n), r = "";
331
+ var c = t.getElementsByTagName(n)[0], d = t.createElement(n), r = "";
284
332
  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");
333
+ })(window, document, "script", "dataLayer", "GTM-T22MXTS"), w("https://tracker.metricool.com/resources/be.js");
286
334
  const e = setInterval(() => {
287
335
  window.beTracker && (clearInterval(e), window.beTracker.t({ hash: "dfa94193071c025264595ebeb4647ae3" }));
288
336
  }, 100);
289
337
  }
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));
338
+ o.marketing && ((function(e, i, t, n, a, s, c) {
339
+ e.fbq || (a = e.fbq = function() {
340
+ a.callMethod ? a.callMethod.apply(a, arguments) : a.queue.push(arguments);
341
+ }, 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
342
  })(
295
343
  window,
296
344
  document,
@@ -298,7 +346,7 @@ const v = (o) => {
298
346
  "https://connect.facebook.net/en_US/fbevents.js"
299
347
  ), fbq("init", "1048470300095520"), fbq("track", "PageView"));
300
348
  }
301
- }, I = {
349
+ }, L = {
302
350
  siteName: "Apartamentos Lineas Romero",
303
351
  autoClear: !0,
304
352
  categories: [
@@ -398,5 +446,5 @@ export {
398
446
  q as initCookieConsent,
399
447
  x as nextJsConfig,
400
448
  T as visitLaGraciosaConfig,
401
- I as wpApartamentosConfig
449
+ L as wpApartamentosConfig
402
450
  };
@@ -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 v(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 _(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 D(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=D(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 E(o,e){return o.find(a=>a.id===e)||null}function P(o,e){const a=E(o,e);return a?a.cookiePatterns:[]}function h({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 N(o){const e=C(o),a=y(e.categories),t=v(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(),_(e.cookieName,{preferences:i,consentId:s,updatedAt:c,siteName:e.siteName},{expiresDays:e.cookieExpiresDays}),e.autoClear&&h({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=P(e.categories,r),L=m();for(const b of L)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","SEARCH_SAMESITE","SIDCC"],cookiesDetails:[{provider:"Facebook",name:"_fbp",duration:"3 meses",purpose:"Utilizada por Facebook para ofrecer productos publicitarios."},{provider:"Facebook",name:"datr / sb / wd",duration:"2 años",purpose:"Identificación de navegador segura y fines publicitarios de Facebook."},{provider:"Google",name:"NID / SID / HSID / SIDCC",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 / 3PSID / 1PSID",duration:"13 meses",purpose:"Utilizadas para crear un perfil de intereses y mostrar anuncios relevantes de Google en otros sitios."},{provider:"Google",name:"SOCS / AEC",duration:"13 meses",purpose:"Almacena el estado de las elecciones de cookies y garantiza que las solicitudes dentro de una sesión de navegación sean realizadas por el usuario y no por otros sitios."},{provider:"Google",name:"SEARCH_SAMESITE",duration:"6 meses",purpose:"Se utiliza para evitar que el navegador envíe esta cookie junto con solicitudes entre sitios (Cross-Site) para proteger la seguridad del usuario."},{provider:"Google Ads",name:"_gcl_au",duration:"3 meses",purpose:"Experimentación 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(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"))}},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=N,d.nextJsConfig=I,d.visitLaGraciosaConfig=T,d.wpApartamentosConfig=q,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.10",
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": [