PageSourceSearch

https://blackfacts.com/lib/js-cookie/dist/js.cookie.js

js blackfacts.com collected 2026-09-24 21:12:09 UTC 4,336 bytes, 147 lines download raw bytes

vendor: 4,281 bytes, lines 1-142
1/*! js-cookie v3.0.5 | MIT */
2;
3(function (global, factory) {
4  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
5  typeof define === 'function' && define.amd ? define(factory) :
6  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () {
7    var current = global.Cookies;
8    var exports = global.Cookies = factory();
9    exports.noConflict = function () { global.Cookies = current; return exports; };
10  })());
11})(this, (function () { 'use strict';
12
13  /* eslint-disable no-var */
14  function assign (target) {
15    for (var i = 1; i < arguments.length; i++) {
16      var source = arguments[i];
17      for (var key in source) {
18        target[key] = source[key];
19      }
20    }
21    return target
22  }
23  /* eslint-enable no-var */
24
25  /* eslint-disable no-var */
26  var defaultConverter = {
27    read: function (value) {
28      if (value[0] === '"') {
29        value = value.slice(1, -1);
30      }
31      return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent)
32    },
33    write: function (value) {
34      return encodeURIComponent(value).replace(
35        /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,
36        decodeURIComponent
37      )
38    }
39  };
40  /* eslint-enable no-var */
41
42  /* eslint-disable no-var */
43
44  function init (converter, defaultAttributes) {
45    function set (name, value, attributes) {
46      if (typeof document === 'undefined') {
47        return
48      }
49
50      attributes = assign({}, defaultAttributes, attributes);
51
52      if (typeof attributes.expires === 'number') {
53        attributes.expires = new Date(Date.now() + attributes.expires * 864e5);
54      }
55      if (attributes.expires) {
56        attributes.expires = attributes.expires.toUTCString();
57      }
58
59      name = encodeURIComponent(name)
60        .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
61        .replace(/[()]/g, escape);
62
63      var stringifiedAttributes = '';
64      for (var attributeName in attributes) {
65        if (!attributes[attributeName]) {
66          continue
67        }
68
69        stringifiedAttributes += '; ' + attributeName;
70
71        if (attributes[attributeName] === true) {
72          continue
73        }
74
75        // Considers RFC 6265 section 5.2:
76        // ...
77        // 3.  If the remaining unparsed-attributes contains a %x3B (";")
78        //     character:
79        // Consume the characters of the unparsed-attributes up to,
80        // not including, the first %x3B (";") character.
81        // ...
82        stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
83      }
84
85      return (document.cookie =
86        name + '=' + converter.write(value, name) + stringifiedAttributes)
87    }
88
89    function get (name) {
90      if (typeof document === 'undefined' || (arguments.length && !name)) {
91        return
92      }
93
94      // To prevent the for loop in the first place assign an empty array
95      // in case there are no cookies at all.
96      var cookies = document.cookie ? document.cookie.split('; ') : [];
97      var jar = {};
98      for (var i = 0; i < cookies.length; i++) {
99        var parts = cookies[i].split('=');
100        var value = parts.slice(1).join('=');
101
102        try {
103          var found = decodeURIComponent(parts[0]);
104          jar[found] = converter.read(value, found);
105
106          if (name === found) {
107            break
108          }
109        } catch (e) {}
110      }
111
112      return name ? jar[name] : jar
113    }
114
115    return Object.create(
116      {
117        set,
118        get,
119        remove: function (name, attributes) {
120          set(
121            name,
122            '',
123            assign({}, attributes, {
124              expires: -1
125            })
126          );
127        },
128        withAttributes: function (attributes) {
129          return init(this.converter, assign({}, this.attributes, attributes))
130        },
131        withConverter: function (converter) {
132          return init(assign({}, this.converter, converter), this.attributes)
133        }
134      },
135      {
136        attributes: { value: Object.freeze(defaultAttributes) },
137        converter: { value: Object.freeze(converter) }
138      }
139    )
140  }
141
142  var api = init(defaultConverter, { path: '/' });
143  /* eslint-enable no-var */
144
145  return api;
146
147}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.