js-cookie 3.0.5 → 3.0.6
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.
- package/README.md +33 -18
- package/dist/js.cookie.js +9 -14
- package/dist/js.cookie.min.js +2 -2
- package/dist/js.cookie.min.mjs +2 -2
- package/dist/js.cookie.mjs +9 -14
- package/package.json +27 -20
package/README.md
CHANGED
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
<img src="https://cloud.githubusercontent.com/assets/835857/14581711/ba623018-0436-11e6-8fce-d2ccd4d379c9.gif">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
# JavaScript Cookie [](https://github.com/js-cookie/js-cookie/actions/workflows/ci.yml) [](https://github.com/js-cookie/js-cookie/actions/workflows/ci.yml) [](https://www.npmjs.com/package/js-cookie) [](https://www.npmjs.com/package/js-cookie) [](https://www.jsdelivr.com/package/npm/js-cookie)
|
|
6
6
|
|
|
7
|
-
A simple, lightweight JavaScript API for handling cookies
|
|
7
|
+
A simple, lightweight JavaScript API for handling cookies, client-side.
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- Extensive browser support
|
|
10
10
|
- Accepts [any](#encoding) character
|
|
11
11
|
- [Heavily](test) tested
|
|
12
12
|
- No dependency
|
|
13
|
-
- Supports ES modules
|
|
14
|
-
- Supports AMD/CommonJS
|
|
13
|
+
- Supports both ES and AMD/CommonJS modules
|
|
15
14
|
- [RFC 6265](https://tools.ietf.org/html/rfc6265) compliant
|
|
16
15
|
- Useful [Wiki](https://github.com/js-cookie/js-cookie/wiki)
|
|
17
16
|
- Enable [custom encoding/decoding](#converters)
|
|
@@ -24,8 +23,6 @@ A simple, lightweight JavaScript API for handling cookies
|
|
|
24
23
|
|
|
25
24
|
### NPM
|
|
26
25
|
|
|
27
|
-
JavaScript Cookie supports [npm](https://www.npmjs.com/package/js-cookie) under the name `js-cookie`.
|
|
28
|
-
|
|
29
26
|
```bash
|
|
30
27
|
npm i js-cookie
|
|
31
28
|
```
|
|
@@ -40,6 +37,14 @@ Alternatively, include js-cookie via [jsDelivr CDN](https://www.jsdelivr.com/pac
|
|
|
40
37
|
|
|
41
38
|
## Basic Usage
|
|
42
39
|
|
|
40
|
+
Import the library:
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
import Cookies from 'js-cookie'
|
|
44
|
+
// or
|
|
45
|
+
const Cookies = require('js-cookie')
|
|
46
|
+
```
|
|
47
|
+
|
|
43
48
|
Create a cookie, valid across the entire site:
|
|
44
49
|
|
|
45
50
|
```javascript
|
|
@@ -95,10 +100,10 @@ Cookies.remove('name') // fail!
|
|
|
95
100
|
Cookies.remove('name', { path: '' }) // removed!
|
|
96
101
|
```
|
|
97
102
|
|
|
98
|
-
_IMPORTANT! When deleting a cookie and you're not relying on the [default attributes](#cookie-attributes), you must pass the exact same path and
|
|
103
|
+
_IMPORTANT! When deleting a cookie and you're not relying on the [default attributes](#cookie-attributes), you must pass the exact same `path`, `domain`, `secure` and `sameSite` attributes that were used to set the cookie:_
|
|
99
104
|
|
|
100
105
|
```javascript
|
|
101
|
-
Cookies.remove('name', { path: '', domain: '.yourdomain.com' })
|
|
106
|
+
Cookies.remove('name', { path: '', domain: '.yourdomain.com', secure: true })
|
|
102
107
|
```
|
|
103
108
|
|
|
104
109
|
_Note: Removing a nonexistent cookie neither raises any exception nor returns any value._
|
|
@@ -117,8 +122,8 @@ _Note: The `.noConflict` method is not necessary when using AMD or CommonJS, thu
|
|
|
117
122
|
|
|
118
123
|
## Encoding
|
|
119
124
|
|
|
120
|
-
This project is [RFC 6265](http://tools.ietf.org/html/rfc6265#section-4.1.1) compliant. All special characters that are not allowed in the cookie-name or cookie-value are encoded with each one's UTF-8 Hex equivalent using [percent-encoding](http://en.wikipedia.org/wiki/Percent-encoding).
|
|
121
|
-
The only character in cookie-name or cookie-value that is allowed and still encoded is the percent `%` character, it is escaped in order to interpret percent input as literal.
|
|
125
|
+
This project is [RFC 6265](http://tools.ietf.org/html/rfc6265#section-4.1.1) compliant. All special characters that are not allowed in the cookie-name or cookie-value are encoded with each one's UTF-8 Hex equivalent using [percent-encoding](http://en.wikipedia.org/wiki/Percent-encoding).
|
|
126
|
+
The only character in cookie-name or cookie-value that is allowed and still encoded is the percent `%` character, it is escaped in order to interpret percent input as literal.
|
|
122
127
|
Please note that the default encoding/decoding strategy is meant to be interoperable [only between cookies that are read/written by js-cookie](https://github.com/js-cookie/js-cookie/pull/200#discussion_r63270778). To override the default encoding/decoding strategy you need to use a [converter](#converters).
|
|
123
128
|
|
|
124
129
|
_Note: According to [RFC 6265](https://tools.ietf.org/html/rfc6265#section-6.1), your cookies may get deleted if they are too big or there are too many cookies in the same domain, [more details here](https://github.com/js-cookie/js-cookie/wiki/Frequently-Asked-Questions#why-are-my-cookies-being-deleted)._
|
|
@@ -184,8 +189,8 @@ Cookies.get('name') // => undefined (need to read at 'subdomain.site.com')
|
|
|
184
189
|
|
|
185
190
|
**Note regarding Internet Explorer default behavior:**
|
|
186
191
|
|
|
187
|
-
> Q3: If I don’t specify a DOMAIN attribute (for) a cookie, IE sends it to all nested subdomains anyway?
|
|
188
|
-
> A: Yes, a cookie set on example.com will be sent to sub2.sub1.example.com.
|
|
192
|
+
> Q3: If I don’t specify a DOMAIN attribute (for) a cookie, IE sends it to all nested subdomains anyway?
|
|
193
|
+
> A: Yes, a cookie set on example.com will be sent to sub2.sub1.example.com.
|
|
189
194
|
> Internet Explorer differs from other browsers in this regard.
|
|
190
195
|
|
|
191
196
|
(From [Internet Explorer Cookie Internals (FAQ)](http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx))
|
|
@@ -206,13 +211,27 @@ Cookies.get('name') // => 'value'
|
|
|
206
211
|
Cookies.remove('name')
|
|
207
212
|
```
|
|
208
213
|
|
|
214
|
+
### partitioned
|
|
215
|
+
|
|
216
|
+
Either `true` or `false`, indicating if the cookie opts into partitioned storage. Must also set `secure: true`.
|
|
217
|
+
|
|
218
|
+
**Default:** No partitioned storage.
|
|
219
|
+
|
|
220
|
+
**Examples:**
|
|
221
|
+
|
|
222
|
+
```javascript
|
|
223
|
+
Cookies.set('name', 'value', { partitioned: true })
|
|
224
|
+
Cookies.get('name') // => 'value'
|
|
225
|
+
Cookies.remove('name')
|
|
226
|
+
```
|
|
227
|
+
|
|
209
228
|
### sameSite
|
|
210
229
|
|
|
211
230
|
A [`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String), allowing to control whether the browser is sending a cookie along with cross-site requests.
|
|
212
231
|
|
|
213
232
|
Default: not set.
|
|
214
233
|
|
|
215
|
-
**Note that more recent browsers are making "Lax" the default value even without
|
|
234
|
+
**Note that more recent browsers are making "Lax" the default value even without specifying anything here.**
|
|
216
235
|
|
|
217
236
|
**Examples:**
|
|
218
237
|
|
|
@@ -279,10 +298,6 @@ Check out the [Servers Docs](SERVER_SIDE.md)
|
|
|
279
298
|
|
|
280
299
|
Check out the [Contributing Guidelines](CONTRIBUTING.md)
|
|
281
300
|
|
|
282
|
-
## Security
|
|
283
|
-
|
|
284
|
-
For vulnerability reports, send an e-mail to `js-cookie at googlegroups dot com`
|
|
285
|
-
|
|
286
301
|
## Releasing
|
|
287
302
|
|
|
288
303
|
Releasing should be done via the `Release` GitHub Actions workflow, so that published packages on npmjs.com have package provenance.
|
package/dist/js.cookie.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! js-cookie v3.0.
|
|
1
|
+
/*! js-cookie v3.0.6 | MIT */
|
|
2
2
|
;
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -10,19 +10,17 @@
|
|
|
10
10
|
})());
|
|
11
11
|
})(this, (function () { 'use strict';
|
|
12
12
|
|
|
13
|
-
/* eslint-disable no-var */
|
|
14
13
|
function assign (target) {
|
|
15
14
|
for (var i = 1; i < arguments.length; i++) {
|
|
16
15
|
var source = arguments[i];
|
|
17
16
|
for (var key in source) {
|
|
17
|
+
if (key === '__proto__') continue
|
|
18
18
|
target[key] = source[key];
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
return target
|
|
22
22
|
}
|
|
23
|
-
/* eslint-enable no-var */
|
|
24
23
|
|
|
25
|
-
/* eslint-disable no-var */
|
|
26
24
|
var defaultConverter = {
|
|
27
25
|
read: function (value) {
|
|
28
26
|
if (value[0] === '"') {
|
|
@@ -37,12 +35,9 @@
|
|
|
37
35
|
)
|
|
38
36
|
}
|
|
39
37
|
};
|
|
40
|
-
/* eslint-enable no-var */
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
function init (converter, defaultAttributes) {
|
|
45
|
-
function set (name, value, attributes) {
|
|
39
|
+
function init(converter, defaultAttributes) {
|
|
40
|
+
function set(name, value, attributes) {
|
|
46
41
|
if (typeof document === 'undefined') {
|
|
47
42
|
return
|
|
48
43
|
}
|
|
@@ -86,7 +81,7 @@
|
|
|
86
81
|
name + '=' + converter.write(value, name) + stringifiedAttributes)
|
|
87
82
|
}
|
|
88
83
|
|
|
89
|
-
function get
|
|
84
|
+
function get(name) {
|
|
90
85
|
if (typeof document === 'undefined' || (arguments.length && !name)) {
|
|
91
86
|
return
|
|
92
87
|
}
|
|
@@ -101,12 +96,13 @@
|
|
|
101
96
|
|
|
102
97
|
try {
|
|
103
98
|
var found = decodeURIComponent(parts[0]);
|
|
104
|
-
jar[found] = converter.read(value, found);
|
|
105
|
-
|
|
99
|
+
if (!(found in jar)) jar[found] = converter.read(value, found);
|
|
106
100
|
if (name === found) {
|
|
107
101
|
break
|
|
108
102
|
}
|
|
109
|
-
} catch
|
|
103
|
+
} catch {
|
|
104
|
+
// Do nothing...
|
|
105
|
+
}
|
|
110
106
|
}
|
|
111
107
|
|
|
112
108
|
return name ? jar[name] : jar
|
|
@@ -140,7 +136,6 @@
|
|
|
140
136
|
}
|
|
141
137
|
|
|
142
138
|
var api = init(defaultConverter, { path: '/' });
|
|
143
|
-
/* eslint-enable no-var */
|
|
144
139
|
|
|
145
140
|
return api;
|
|
146
141
|
|
package/dist/js.cookie.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! js-cookie v3.0.
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,(function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)e[o]=n[o]}return e}var t=function t(n,o){function r(t,r,i){if("undefined"!=typeof document){"number"==typeof(i=e({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+n.write(r,t)+c}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],o={},r=0;r<t.length;r++){var i=t[r].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(o[u]=n.read(c,u),e===u)break}catch
|
|
1
|
+
/*! js-cookie v3.0.6 | MIT */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,(function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)"__proto__"!==o&&(e[o]=n[o])}return e}var t=function t(n,o){function r(t,r,i){if("undefined"!=typeof document){"number"==typeof(i=e({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+n.write(r,t)+c}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],o={},r=0;r<t.length;r++){var i=t[r].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(u in o||(o[u]=n.read(c,u)),e===u)break}catch{}}return e?o[e]:o}},remove:function(t,n){r(t,"",e({},n,{expires:-1}))},withAttributes:function(n){return t(this.converter,e({},this.attributes,n))},withConverter:function(n){return t(e({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(n)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});return t}));
|
package/dist/js.cookie.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! js-cookie v3.0.
|
|
2
|
-
function e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)e[n]=r[n]}return e}var t=function t(r,n){function o(t,o,i){if("undefined"!=typeof document){"number"==typeof(i=e({},n,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+r.write(o,t)+c}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],n={},o=0;o<t.length;o++){var i=t[o].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(n[u]=r.read(c,u),e===u)break}catch
|
|
1
|
+
/*! js-cookie v3.0.6 | MIT */
|
|
2
|
+
function e(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)"__proto__"!==n&&(e[n]=r[n])}return e}var t=function t(r,n){function o(t,o,i){if("undefined"!=typeof document){"number"==typeof(i=e({},n,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+r.write(o,t)+c}}return Object.create({set:o,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],n={},o=0;o<t.length;o++){var i=t[o].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(u in n||(n[u]=r.read(c,u)),e===u)break}catch{}}return e?n[e]:n}},remove:function(t,r){o(t,"",e({},r,{expires:-1}))},withAttributes:function(r){return t(this.converter,e({},this.attributes,r))},withConverter:function(r){return t(e({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(r)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});export{t as default};
|
package/dist/js.cookie.mjs
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
/*! js-cookie v3.0.
|
|
2
|
-
/* eslint-disable no-var */
|
|
1
|
+
/*! js-cookie v3.0.6 | MIT */
|
|
3
2
|
function assign (target) {
|
|
4
3
|
for (var i = 1; i < arguments.length; i++) {
|
|
5
4
|
var source = arguments[i];
|
|
6
5
|
for (var key in source) {
|
|
6
|
+
if (key === '__proto__') continue
|
|
7
7
|
target[key] = source[key];
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
return target
|
|
11
11
|
}
|
|
12
|
-
/* eslint-enable no-var */
|
|
13
12
|
|
|
14
|
-
/* eslint-disable no-var */
|
|
15
13
|
var defaultConverter = {
|
|
16
14
|
read: function (value) {
|
|
17
15
|
if (value[0] === '"') {
|
|
@@ -26,12 +24,9 @@ var defaultConverter = {
|
|
|
26
24
|
)
|
|
27
25
|
}
|
|
28
26
|
};
|
|
29
|
-
/* eslint-enable no-var */
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
function init (converter, defaultAttributes) {
|
|
34
|
-
function set (name, value, attributes) {
|
|
28
|
+
function init(converter, defaultAttributes) {
|
|
29
|
+
function set(name, value, attributes) {
|
|
35
30
|
if (typeof document === 'undefined') {
|
|
36
31
|
return
|
|
37
32
|
}
|
|
@@ -75,7 +70,7 @@ function init (converter, defaultAttributes) {
|
|
|
75
70
|
name + '=' + converter.write(value, name) + stringifiedAttributes)
|
|
76
71
|
}
|
|
77
72
|
|
|
78
|
-
function get
|
|
73
|
+
function get(name) {
|
|
79
74
|
if (typeof document === 'undefined' || (arguments.length && !name)) {
|
|
80
75
|
return
|
|
81
76
|
}
|
|
@@ -90,12 +85,13 @@ function init (converter, defaultAttributes) {
|
|
|
90
85
|
|
|
91
86
|
try {
|
|
92
87
|
var found = decodeURIComponent(parts[0]);
|
|
93
|
-
jar[found] = converter.read(value, found);
|
|
94
|
-
|
|
88
|
+
if (!(found in jar)) jar[found] = converter.read(value, found);
|
|
95
89
|
if (name === found) {
|
|
96
90
|
break
|
|
97
91
|
}
|
|
98
|
-
} catch
|
|
92
|
+
} catch {
|
|
93
|
+
// Do nothing...
|
|
94
|
+
}
|
|
99
95
|
}
|
|
100
96
|
|
|
101
97
|
return name ? jar[name] : jar
|
|
@@ -129,6 +125,5 @@ function init (converter, defaultAttributes) {
|
|
|
129
125
|
}
|
|
130
126
|
|
|
131
127
|
var api = init(defaultConverter, { path: '/' });
|
|
132
|
-
/* eslint-enable no-var */
|
|
133
128
|
|
|
134
129
|
export { api as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "js-cookie",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.6",
|
|
4
4
|
"description": "A simple, lightweight JavaScript API for handling cookies",
|
|
5
5
|
"browser": "dist/js.cookie.js",
|
|
6
6
|
"module": "dist/js.cookie.mjs",
|
|
@@ -23,12 +23,15 @@
|
|
|
23
23
|
"amd",
|
|
24
24
|
"commonjs",
|
|
25
25
|
"client",
|
|
26
|
-
"js-cookie"
|
|
27
|
-
"browserify"
|
|
26
|
+
"js-cookie"
|
|
28
27
|
],
|
|
29
28
|
"scripts": {
|
|
30
29
|
"test": "grunt test",
|
|
31
|
-
"
|
|
30
|
+
"test:browserstack": "grunt browserstack",
|
|
31
|
+
"format": "prettier --write .",
|
|
32
|
+
"format:check": "prettier --check .",
|
|
33
|
+
"lint": "eslint --fix .",
|
|
34
|
+
"lint:check": "eslint .",
|
|
32
35
|
"dist": "rm -rf dist/* && rollup -c",
|
|
33
36
|
"release": "release-it"
|
|
34
37
|
},
|
|
@@ -43,29 +46,33 @@
|
|
|
43
46
|
"author": "Klaus Hartl",
|
|
44
47
|
"license": "MIT",
|
|
45
48
|
"devDependencies": {
|
|
46
|
-
"@
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"eslint
|
|
50
|
-
"eslint-
|
|
51
|
-
"eslint-plugin-
|
|
49
|
+
"@eslint/js": "^10.0.1",
|
|
50
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
51
|
+
"browserstack-node-sdk": "^1.52.2",
|
|
52
|
+
"eslint": "^10.0.1",
|
|
53
|
+
"eslint-config-prettier": "^10.0.1",
|
|
54
|
+
"eslint-plugin-html": "^8.0.0",
|
|
55
|
+
"eslint-plugin-markdown": "^5.0.0",
|
|
56
|
+
"globals": "^17.3.0",
|
|
52
57
|
"grunt": "^1.0.4",
|
|
53
58
|
"grunt-compare-size": "^0.4.2",
|
|
54
|
-
"grunt-contrib-connect": "^
|
|
55
|
-
"grunt-contrib-
|
|
56
|
-
"grunt-contrib-qunit": "^7.0.0",
|
|
59
|
+
"grunt-contrib-connect": "^5.0.0",
|
|
60
|
+
"grunt-contrib-qunit": "^10.0.0",
|
|
57
61
|
"grunt-contrib-watch": "^1.1.0",
|
|
58
62
|
"grunt-exec": "^3.0.0",
|
|
59
63
|
"gzip-js": "^0.3.2",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
+
"js-reporters": "^2.1.0",
|
|
65
|
+
"nano-staged": "^1.0.2",
|
|
66
|
+
"prettier": "^3.0.0",
|
|
67
|
+
"qunit": "^2.19.4",
|
|
68
|
+
"release-it": "^20.0.0",
|
|
69
|
+
"rollup": "^4.53.3",
|
|
64
70
|
"rollup-plugin-filesize": "^10.0.0",
|
|
65
|
-
"rollup-plugin-license": "^3.
|
|
66
|
-
"
|
|
71
|
+
"rollup-plugin-license": "^3.2.0",
|
|
72
|
+
"selenium-webdriver": "^4.43.0",
|
|
73
|
+
"simple-git-hooks": "^2.8.1"
|
|
67
74
|
},
|
|
68
75
|
"engines": {
|
|
69
|
-
"node": ">=
|
|
76
|
+
"node": ">=20"
|
|
70
77
|
}
|
|
71
78
|
}
|